Java If或If-Else语句错误

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.

我试图编写一个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.");
      }  

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我完全明白他的意思,谢谢。但他认为我在没有说的时候说了其他话,我也无意浪费时间讨论我没有做过的陈述。