If或If-Else语句错误

时间:2013-03-05 03:23:17

标签: 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.nextInt();

      if (miles != int);
      {
         System.out.println(miles + " is not valid. I will use 100 for the number of miles.");
      }  

6 个答案:

答案 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)

你有一个;在if语句之后。

您还可以检查用户输入的int不是数字。可能想用数字修复它,它应该起作用......从我在课堂上记得的内容。

答案 4 :(得分:0)

if (miles != int);

你不能测试一个数字是否是这样的int。你还在这一行的末尾有一个半冒号(应删除)。但是,根本没有理由拥有这条线。因为你写道:

miles = keyboard.nextInt();

里程必须是一个int。否则,Scanner会抛出异常。

答案 5 :(得分:0)

我将通过说你需要做一个Java教程来开始这个。你的代码充满了基本的错误。


(假设keyboardScanner ...)的实例

错误1 - 您不能使用类型名称或关键字(例如int)作为值。

错误2 - 您只能使用==将整数值(例如miles的值)与其他数字进行比较。

错误3 - 你不应该在if (condition)之后加上分号。你编写的内容将编译,但它实际上意味着“如果条件为真,则执行空语句”。然后你用一个块来跟着它...将被无条件执行。

错误4 - 实际上,如果keyboard.nextInt()遇到的东西不是有效的整数,它会抛出异常;例如InputMismatchException。如果要打印出错误消息,则需要捕获该异常。

错误5 - 显然你没有检查nextInt()方法的javadoc ...


回顾一下......你犯了很多错误,因为你没有完成教程......或者你一直在跳过讲座或其他什么。