我正在尝试编写一个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.nextInt();
if (miles != int);
{
System.out.println(miles + " is not valid. I will use 100 for the number of miles.");
}
答案 0 :(得分:2)
int
是一个关键字,不能参与条件表达式。
在if
语句之后还有一个伪分号,它作为受控语句,因此以下块是无条件的。
答案 1 :(得分:2)
这无法编译:
if (miles != int);
您正在将变量与int
进行比较,这是一种类型。编译器建议你添加.class,这样你就可以获得类对象,但它也不正确。
您想知道是否未输入整数值,但在这种情况下,nexInt()会抛出InputMismatchException
。如果用户正在输入整数,您应该检查hasNextInt()。
答案 2 :(得分:1)
您获得的语法错误是因为int
是关键字。您不能将其用作标识符。
如果您想检查Scanner
是否准备好int
,请在您的情况下使用keyboard.hasNextInt()
:
int miles;
while (!keyboard.hasNextInt()) {
System.out.println(keyboard.nextLine() + " is not valid. Please enter a different number.");
}
int miles = keyboard.nextInt();
答案 3 :(得分:0)
您还可以检查用户输入的int不是数字。可能想用数字修复它,它应该起作用......从我在课堂上记得的内容。
答案 4 :(得分:0)
if (miles != int);
你不能测试一个数字是否是这样的int。你还在这一行的末尾有一个半冒号(应删除)。但是,根本没有理由拥有这条线。因为你写道:
miles = keyboard.nextInt();
里程必须是一个int。否则,Scanner会抛出异常。
答案 5 :(得分:0)
我将通过说你需要做一个Java教程来开始这个。你的代码充满了基本的错误。
(假设keyboard
是Scanner
...)的实例
错误1 - 您不能使用类型名称或关键字(例如int
)作为值。
错误2 - 您只能使用==
将整数值(例如miles
的值)与其他数字进行比较。
错误3 - 你不应该在if (condition)
之后加上分号。你编写的内容将编译,但它实际上意味着“如果条件为真,则执行空语句”。然后你用一个块来跟着它...将被无条件执行。
错误4 - 实际上,如果keyboard.nextInt()
遇到的东西不是有效的整数,它会抛出异常;例如InputMismatchException
。如果要打印出错误消息,则需要捕获该异常。
错误5 - 显然你没有检查nextInt()
方法的javadoc ...
回顾一下......你犯了很多错误,因为你没有完成教程......或者你一直在跳过讲座或其他什么。