"非法表达"新秀的错误?

-1 java compiler-errors

我需要知道为什么我在第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);
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议将不胜感激,提前感谢

Jon*_*eet 6

好吧,看看这个:

int numb1 =;
Run Code Online (Sandbox Code Playgroud)

您对初始值的期望是什么?

您可以声明一个变量而不为其赋值,如下所示:

int numb1;
Run Code Online (Sandbox Code Playgroud)

......但你不能在=没有给出价值的情况下离开那里.

但是,我个人会等到声明变量,直到你准备给它一个值:

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
}
Run Code Online (Sandbox Code Playgroud)

您不必在方法的顶部声明所有变量,如果您只在最初需要它们的地方声明它们,那么您的代码通常会更清晰.

编辑:还有这个if块不正确:

if (numb2>numb1)
    div = numb2 / numb1;
    remainder = numb2 % numb2;  
}
Run Code Online (Sandbox Code Playgroud)

你错过了开口大括号,这意味着你已经有效地得到了这个:

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

你真的是这个意思:

if (numb2 > numb1) {
    div = numb2 / numb1;
    remainder = numb2 % numb2;  
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您经常编译代码,那么您将无法解决这么多不同的错误.一旦出现编译时错误,就应该停止,确保理解并修复它.这样你就不会遇到大量的问题,试图立刻去理解.此外,您不必担心多个错误相互交互,这可能会使生活更加艰难.