Java If或If-Else语句错误
我试图编写一个If或If-Else语句,在提示时未输入整数值时保护程序。我一直收到错误消息:“.class”应为Java If或If-Else语句错误,java,Java,我试图编写一个If或If-Else语句,在提示时未输入整数值时保护程序。我一直收到错误消息:“.class”应为 System.out.println("Type the name of your destination: "); destination = keyboard.nextLine(); System.out.print(destination + " is how many miles away?"); miles = keyboard.
System.out.println("Type the name of your destination: ");
destination = keyboard.nextLine();
System.out.print(destination + " is how many miles away?");
miles = keyboard.nextInt();
if (miles != int);
{
System.out.println(miles + " is not valid. I will use 100 for the number of miles.");
}
int
是关键字,不能参与条件表达式
if
语句后还有一个伪分号,充当受控语句,因此下面的块是无条件的。您得到的语法错误是因为int
是一个关键字。不能将其用作标识符
如果要检查扫描仪
是否有一个int
可供读取,请在您的情况下使用键盘.hasnetint()
:
int miles;
while (!keyboard.hasNextInt()) {
System.out.println(keyboard.nextLine() + " is not valid. Please enter a different number.");
}
int miles = keyboard.nextInt();
这无法编译:
if (miles != int);
您正在将变量与int
进行比较,后者是一种类型。编译器建议您添加.class,这样您就可以获得class对象,但它也不正确
您想知道是否未输入整数值,但在这种情况下,nexInt()将抛出一个
inputmaschException
。您应该做的是使用hasnetint()检查用户是否输入整数。您有一个;在if语句之后
您还可以检查用户输入的不是数字的int的内容。可能想用一个数字来解决这个问题,它应该可以工作。。。从课堂上我所记得的
if (miles != int);
你不能测试一个数字是否是那样的整数。这一行的末尾还有一个分号(应该删除)。然而,事实上根本没有理由有这样的说法。因为你写了:
miles = keyboard.nextInt();
miles必须是int。否则Scanner将抛出异常。我将首先说您需要做一个Java教程。你的代码充满了基本的错误
(假设
键盘
是扫描仪
的一个实例)
错误1-不能使用类型名称或关键字(例如int
)作为值
错误2-您只能使用=
将整数值(如英里数
)与其他数字进行比较
错误3-如果(条件),则不应在if(条件)
后加分号。您编写的内容将被编译,但它实际上意味着“如果条件为true,则执行空语句”。然后你就用了一个街区。。。这将无条件地执行
错误4-事实上,如果keyboard.nextInt()
遇到无效整数,它将抛出异常;e、 g.输入不匹配异常
。如果要打印错误消息,需要捕获该异常
错误5-显然您没有检查nextInt()
方法
重述。。。你犯了很多错误,因为你还没有完成教程。。。或者您跳过了讲座或其他内容。错误消息是什么?为什么不使用Integer.parseInt()?如果它不是有效的整数,则会抛出NumberFormatException。然后向我解释如何
miles!=int
是一个可以正确编译和执行的有效语句。我不打算讨论我没有实际说过的事情。那么你的回答仍然不能解决问题。@EJP Legend的意思是int
是一个保留关键字,所以,if
里面的表达式是无效的。@informatik01我完全明白他的意思,谢谢。但他认为我在没有说的时候说了其他话,我也无意浪费时间讨论我没有做过的陈述。