我是JAVA的新手,我不知道如何打破我在下面的代码中使用的DO WHILE循环?我以为我可以输入-1来打破或所有其他数字继续循环。
import javax.swing.*;
public class Triangel {
public static void main(String[] args) {
int control = 1;
while (control == 1){
String value = JOptionPane.showInputDialog("Enter a number or -1 to stop");
if(value == "-1"){
control = 0;
}
System.out.println(value);
}
}
}
答案 0 :(得分:11)
您需要使用.equals()
代替==
,如下所示:
if (value.equals("-1")){
control = 0;
}
当你使用==
时,你正在检查引用相等性(即这是相同的指针),但当你使用.equals()
时,你正在检查值是否相等(即它们是否指向一样)。通常.equals()
是正确的选择。
您也可以使用break
退出循环,如下所示:
while( true ) {
String value = JOptionPane.showInputDialog( "Enter a number or -1 to stop" );
System.out.println( value );
if ( "-1".equals(value) ) {
break;
}
}
==
vs .equals()
的更多信息,请参阅Difference Between Equals and == 答案 1 :(得分:5)
比较字符串时需要使用String.equals()
方法。您的value == "-1"
代码正在检查引用相等,而不是值相等
答案 2 :(得分:3)
您可以使用break
:
while (true) {
...
if ("-1".equals(value)) {
break;
}
...
}