如何检查单个字符并打破循环

Ste*_*ven 0 java

我有这个循环:

String cont = "";
while ( cont != "n" ) {
// Loop stuff

System.out.print("another item (y/n)?");
cont = input.next();
}
Run Code Online (Sandbox Code Playgroud)

但是,当我输入"n"来停止循环时,它就会继续运行.怎么了?

Bal*_*usC 6

您正在比较对象而不是基元.A String是一个对象,==并且!=不会通过"内部值"比较对象,而是通过引用来比较.

你有2个选择:

  1. 使用Object#equals()方法.

    while (!cont.equals("n")) {
        // ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用原语char而不是String.

    char cont = 'y';
    while (cont != 'n') {
        // ...
        cont = input.next().charAt(0);
    }
    
    Run Code Online (Sandbox Code Playgroud)