如何使这个计算器只接受前两个输入的数字并循环直到它们是正确的



不知何故,我得到了操作符循环,直到我得到正确的输入。当我尝试将num1或num2放入"if"语句,它说我不能将"转换为"boolean"帮助"。请帮助

public class main {
public static void main(String[] args) {
int num1;
int num2;
String operator;

Scanner scan = new Scanner(System.in);  
System.out.print("tell me first number: ");
num1 = scan.nextInt();               //<--input only numbers, loop if not   
System.out.print("tell me second number: ");
num2 = scan.nextInt();               //<--input only numbers, loop if not
//////////////////operator////////////////////////
System.out.print("tell me operator: ");
operator = scan.next();
while(true) {   
if(operator.equals("+")) {
System.out.println("answer is: " +(num1 + num2));
break;
}
else if(operator.equals("-")) {
System.out.println("answer is: " +(num1 - num2));
break;
}   
else if(operator.equals("*")) {
System.out.println("answer is: " +(num1 * num2));
break;
}
else if(operator.equals("/")) {
System.out.println("answer is: " +(num1 / num2));
break;
}
else {
System.out.print("wrong input! try again!: ");
operator = scan.next();
}   
}
}
}

试试这个

System.out.print("tell me first number: ");
while (!scan.hasNextInt()) scan.next();
num1 = scan.nextInt();
System.out.print("tell me second number: ");
while (!scan.hasNextInt()) scan.next();
num2 = scan.nextInt();
System.out.print("tell me first number: ");
while (!scan.hasNextInt()) scan.next();
num1 = scan.nextInt();
System.out.print("tell me second number: ");
while (!scan.hasNextInt()) scan.next();
num2 = scan.nextInt();

有了这个,错误的答案循环,直到我得到正确的输入,但我不能让它打印我">错误的输入!再试一次!:";错误的输入没有开始无限循环,所以我试着编辑,想出了这个。

//////////////////first number//////////////////// 
System.out.print("tell me first number: ");
while(!scan.hasNextInt()) { 
System.out.print("Wrong Input! Try again!: "); scan.next();         
if(scan.hasNextInt() == true) {
}
}   
num1 = scan.nextInt();
//////////////////second number///////////////////  
System.out.print("tell me second number: ");
while(!scan.hasNextInt()) {
System.out.print("Wrong input! Try again!: "); scan.next();
if(scan.hasNextInt() == true) {
}
}
num2 = scan.nextInt();

不知何故它帮助lol。谢谢你的帮助。

最新更新