[英]Java - While loop will not exit
//無效的循環。 我一直按1,2、3、4或5,但不會退出循環。 該操作員似乎被分配了我輸入的值,但仍不會退出while循環。 我試圖用簡單的數學運算編寫一個基本的計算器,但這變成了一個非常煩人的問題。
import java.util.Scanner;
public class BasicCalculatorTwo {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int operator;
double fnum, snum, answer;
operator = 0;
System.out.println("Enter first number : ");
fnum = scanner.nextDouble();
System.out.println("Enter second number : ");
snum = scanner.nextDouble();
while(operator != 1 || operator != 2 || operator != 3 || operator != 4 || operator != 5 ){
System.out.println();
System.out.println(fnum + " ? " + snum + " = ");
System.out.println("1 : Add");
System.out.println("2 : Subtract");
System.out.println("3 : Multiply");
System.out.println("4 : Divide");
System.out.println("5 : Modularize");
operator = scanner.nextInt();
}
switch(operator){
case 1:
answer = fnum + snum;
break;
case 2:
answer = fnum - snum;
break;
case 3:
answer = fnum * snum;
break;
case 4:
answer = fnum / snum;
break;
case 5:
answer = fnum % snum;
break;
default:
break;
System.out.println(fnum + " ? " + snum + " = " + answer);
scanner.close();
}
}
}
您循環條件是問題所在。
while (operator != 1 || operator != 2 || operator != 3 || operator != 4 || operator != 5)
它應該是
while (operator != 1 && operator != 2 && operator != 3 && operator != 4 && operator != 5)
基本上,您是說如果運算符為!= 1,則執行循環。 同樣,其他每個人。 如果要使用&&運算符代替|| 它會好得多。
確實,您要說的是運算符> 1 && <5,然后循環,否則中斷。
while(operator < 1 || operator > 5)
{
DoPrintStuffHere();
}
從邏輯上考慮一下,您希望小於1或大於5的任何數字再次循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.