【发布时间】:2013-08-02 10:27:09
【问题描述】:
在我输入“stop”后,代码没有退出 - 出于某种原因。为什么? 逐步调试表明,在我输入“停止”后,它的值正好由 's'、't'、'o'、'p' 组成,没有任何换行符等 - 但是,代码仍然没有出口。谁能告诉我为什么?
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// asking username
System.out.print("Username: ");
String username = input.nextLine();
String inpText;
do {
System.out.print(username + "$: ");
inpText = input.nextLine();
System.out.print("\n");
// analyzing
switch (inpText) {
case "start":
System.out.println("> Machine started!");
break;
case "stop":
System.out.println("> Stopped!");
break;
default:
System.out.println("> Command not recognized");
}
} while (inpText != "stop");
System.out.println("Bye!..");
}
}
【问题讨论】:
-
阅读此内容:How do I compare strings in Java?,然后修复您的
while条件。 -
谢谢@jlordo。无法想象原因在于比较本身;并且链接的问题涵盖了所有内容。
标签: java loops java.util.scanner do-loops