2013-04-10 5 views
-1

Мне нужно знать, почему я получаю эту ошибку в строках 18-21. Я чувствую, что это МОЖЕТ быть связанной проблемой, но я не могу понять это."Незаконное начало выражения" ошибка новобранец?

import java.util.Scanner; 

public class Proj4_1 { 

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    int numb1 =; 
    int numb2 =; 
    int div =; 
    int remainder =; 

    System.out.println("Enter a number: "); 
    numb1 = reader.nextint(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    numb2 = reader.nextint(); 

    System.out.print(numb2); 

    if (numb1>numb2){ 
     div = numb1/numb2; 
     remainder = numb1 % numb2; 
    }else{ 
    if (numb2>numb1) 
     div = numb2/numb1; 
     remainder = numb2 % numb2; 
    } 

    System.out.println("The answer quotient is " +div+ "with a remainder of" +remainder); 

любую помощь или совет был бы очень признателен, спасибо заранее

+0

Ошибка компилятора не может быть ошибкой во время выполнения. –

+0

'int numb1 =;' выглядит странно для меня, я думаю, что может быть, где ваша проблема –

+0

@LuiggiMendoza, что если сам компилятор разбился? –

ответ

6

Ну, посмотрите на это:

int numb1 =; 

Что вы ожидаете начальное значение быть?

Вы можете объявить переменную без присвоения ему значение, например:

int numb1; 

... но вы не можете оставить = там, не давая значения.

Однако, я бы лично ждать объявить переменную, пока вы не будете готовы дать ему значение:

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    System.out.println("Enter a number: "); 
    // Fixed case of nextInt as well... 
    int numb1 = reader.nextInt(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    int numb2 = reader.nextInt(); 

    System.out.print(numb2); 

    // etc 
} 

Вы не должны объявлять все переменные в верхней части метода , и ваш код, как правило, будет более чистым, если вы только объявите их там, где они вам в первую очередь нужны.

EDIT: Там же этот if блок, который является неправильным:

if (numb2>numb1) 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

Вы пропустили открывающую фигурную скобку, что означает, что вы эффективно получил это:

if (numb2>numb1) { 
    div = numb2/numb1; 
} 
remainder = numb2 % numb2; 
// This closing brace is now dangling! 
} 

You на самом деле означало это:

if (numb2 > numb1) { 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

Обратите внимание, что если вы регулярно компилируете код, вы не сможете так далеко зайти так много ошибок. Как только вы получите одну ошибку времени компиляции, вам следует остановиться, убедиться, что вы ее поняли и исправить. Таким образом, вы никогда не столкнетесь с огромным количеством проблем, чтобы попытаться понять сразу. Кроме того, вам не нужно беспокоиться о том, что несколько ошибок взаимодействуют друг с другом, что может сделать жизнь намного сложнее.

+0

Я запрашиваю ввод на 23-я 28-я строка – user2267726

+0

@ user2267726: Да, но что вы ожидаете от этой декларации с '='? –

+0

Существует также 'if (numb2> numb1) sentence1; SENTENCE2; } '(без открытой скобки). –

Смежные вопросы