我需要知道为什么我在第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 :(得分: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;
}
请注意,如果您经常编译代码,那么有很多不同的错误,您将无法做到这一点。一旦出现编译时错误,就应该停止,确保理解并修复它。这样你就不会遇到大量的问题,试图立刻去理解。此外,您不必担心多个错误相互影响,这会使生活变得更加艰难。