// Петля, которая не работает. Я продолжаю нажимать число, которое равно 1,2,3,4 или 5, но оно не выйдет из цикла. Оператору, как представляется, присваивается значение, которое я вводил, но он все равно не выйдет из цикла while. Я пытаюсь написать базовый калькулятор с помощью простых математических операций, но это стало очень неприятной проблемой.Java - пока цикл не завершится
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 ** всегда ** истинно. Операционная переменная всегда либо не 1, либо не 2 - подумайте об этом логически, и вы увидите. Вы хотите использовать '&&' not '||'. –
'operator! = 1 OR operator! = 2 OR operator! = 3 OR operator! = 4 OR operator! = 5' - это всегда будет« true ». Может быть, вы хотели использовать '==' или '&&'? В любое время, когда у вас есть бесконечный цикл, посмотрите на свое выражение управления и свою управляющую переменную. – mkobit
О, я буквально просто прочитал цикл while вслух, и теперь я понимаю, почему он застрял в бесконечном цикле. – ArcticJag