IF语句不是检查变量

时间:2015-09-27 21:30:25

标签: java

您好我试图编写一个程序,打印范围内的3个数字,限制为0到99之间的数字,但是我的If语句不会检查变量。

    System.out.println("Please input a interger between 0-99:");
    int input1 = Input.nextInt();

        if (input1>99||input1<0){ 
            System.out.println("Outside range. Please enter an integer between 0-99");
             input1 = Input.nextInt();
        }        

        else if (input1>99||input1<0); 
                           System.out.println("Outside range program terminated.");

2 个答案:

答案 0 :(得分:0)

我看到两个问题:

未使用显示的代码检查您的第二个输入(在第一个IF内)。 else语句不会检查上面提到的问题,因为在原始IF执行时你已经通过了该决策点。 else取决于IF的结果。这将是一种解决方法。

最后'else'需要括号{}。

int input1 = 0;
Boolean myLoop = true;           //Sets up our loop flag
while(myLoop){                   //Loop while true
    System.out.println("Please enter an integer between 0-99");
    input1 = Input.nextInt();
    if (input1>99||input1<0){    //If input is outside the range send msg. 
       System.out.println("Data range error");
    }else{                       //If input is in range, end loop. 
       myLoop=false;
    }
 }        

这将继续检查,直到获得有效值。

答案 1 :(得分:0)

虽然其他人已经为您提供了良好的代码示例,但我想指出您的代码问题所在。代码没有在这里进行双重检查,因为你在第二次if-else检查结束时放了一个分号,当程序满足 if 条件时,程序将什么也不做.I已用花括号替换它。尝试再次编译并运行它。

   System.out.println("Please input a interger between 0-99:");
    int input1 = Input.nextInt();

        if (input1>99||input1<0){ 
            System.out.println("Outside range. Please enter an integer between 0-99");
             input1 = Input.nextInt();
        }        

        else if (input1>99||input1<0){
                           System.out.println("Outside range program terminated.");
        }