“非法表达开始”菜鸟错误?
我需要知道为什么我在第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);
任何帮助或建议将不胜感激,谢谢提前
好吧,看看这个:
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;
}
请注意,如果您经常编译代码,您将不会得到如此多的不同的错误。只要你得到一个编译时错误,你应该停下来,确保你理解它并修复它。这样,你永远不会面临绝大多数的问题来尝试去理解。另外,你不需要担心多个错误互相影响,这会让生活变得更加困难。
我正在提示输入第二十三行第二十二行 – user2267726 2013-04-10 19:55:08
@ user2267726:是的,但你期望用'='做什么声明呢? – 2013-04-10 19:55:26
还有'if(numb2> numb1)sentence1; SENTENCE2; }(没有开头的括号)。 – 2013-04-10 19:56:07
编译器错误不能同时出现运行时错误。 – 2013-04-10 19:54:56
'int numb1 =;'对我来说看起来有点奇怪,我认为它可能是你的问题的地方 – 2013-04-10 19:55:23
@LuiggiMendoza如果编译器本身崩溃怎么办? – 2013-04-10 19:55:45