为什么我不能使用java.util.Scanner打破for循环?

Cin*_*316 0 java for-loop break java.util.scanner

当我使用这段代码时:

Scanner scan = new Scanner(System.in);
String codeEntered = "";
for ( ; ; ){
        System.out.print("Enter Code or Press Q to Quit:\n");
        codeEntered = scan.nextLine();
        if (codeEntered == "Q"){
            break;
        }
        //Do stuff here.

}
System.out.println("Goodbye!");
Run Code Online (Sandbox Code Playgroud)

即使我输入"Q",我也无法摆脱for循环.这段代码有什么问题?

ami*_*mit 8

if (codeEntered == "Q"){
Run Code Online (Sandbox Code Playgroud)

您通常应该使用equals()而不是operator==在比较对象时使用.(并且String是一个对象!)
operator==检查身份 - 如果两个操作数是同一个对象,同时equals()检查它们的内容是否相等.

尝试:

if ("Q".equals(codeEntered)){
Run Code Online (Sandbox Code Playgroud)