您好,我很难阻止“EXTERMINATE”被分配为变量之一,我只想使用它,以便 while 循环知道何时结束,这是否可能,该值未分配到变量并仅用于循环? 编辑:
public static void ello() {
String ans1 = "";
String number1input = "";
String ans2 = "";
String number2input = "";
int number1 = 0;
int number2 = 0;
while (!ans1.equals("EXTERMINATE") || !ans2.equals("EXTERMINATE")) {
ans1 = JOptionPane.showInputDialog("Name an animal?");
if (ans1.equals("EXTERMINATE")) {
break;
}
number1input = JOptionPane.showInputDialog("How many are left in the wild?");
number1 = Integer.parseInt(number1input);
ans2 = JOptionPane.showInputDialog("Name an animal?");
if (ans2.equals("EXTERMINATE")) {
break;
}
number2input = JOptionPane.showInputDialog("How many are left in the wild?");
number2 = Integer.parseInt(number2input);
if (number1 <= number2) {
number2 = number1;
ans2 = ans1;
} else {
number1 = number2;
ans1 = ans2;
}
}
}
谢谢
最佳答案
您可以对 JOptionPane 中的数据使用不同的变量,然后在检查它不是“EXTERMINATE”后将该变量的值分配给 ans1
替换
int number2 = 0;
while (!ans1.equals("EXTERMINATE") || !ans2.equals("EXTERMINATE")) {
ans1 = JOptionPane.showInputDialog("Name an animal?");
if (ans1.equals("EXTERMINATE")) {
break;
}
与
int number2 = 0;
String tempAns;
while (true) {
tempAns = JOptionPane.showInputDialog("Name an animal?");
if ("EXTERMINATE".equals(tempAns)) {
break;
}
ans1 = tempAns;
现在 ans1
将没有机会包含“EXTERMINATE”。另请注意 while(true)
,因为您正在 break
原始 while
循环中的两个条件。
旁注:最好写
"EXTERMINATE".equals(tempAns)
而不是
tempAns.equals("EXTERMINATE")
如果 tempAns
为 null,前者是安全的,而后者将抛出 NullPointerException
。
关于java-我需要一个仅在 while 循环中使用而不被分配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554234/