您好我试图编写一个程序,打印范围内的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.");
答案 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.");
}