-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);

任何帮助或建议将不胜感激,在此先感谢

4

1 回答 1

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
}

您不必在方法的顶部声明所有变量,如果您只在第一次需要它们的地方声明它们,您的代码通常会更干净。

编辑:还有这个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!
}

你真的是这个意思:

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

请注意,如果您定期编译代码,您将不会遇到这么多不同的错误。一旦你得到一个编译时错误,你应该停下来,确保你理解它,然后修复它。这样一来,您将永远不会面临要立即尝试理解的大量问题。此外,您无需担心多个错误会相互影响,这会使生活变得更加困难。

于 2013-04-10T19:53:45.317 回答