我有这个循环:
String cont = "";
while ( cont != "n" ) {
// Loop stuff
System.out.print("another item (y/n)?");
cont = input.next();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我输入"n"来停止循环时,它就会继续运行.怎么了?
您正在比较对象而不是基元.A String是一个对象,==并且!=不会通过"内部值"比较对象,而是通过引用来比较.
你有2个选择:
使用Object#equals()方法.
while (!cont.equals("n")) {
// ...
}
Run Code Online (Sandbox Code Playgroud)使用原语char而不是String.
char cont = 'y';
while (cont != 'n') {
// ...
cont = input.next().charAt(0);
}
Run Code Online (Sandbox Code Playgroud)