0

「stop」と入力した後、コードが終了しません - 何らかの理由で。なんで?ステップバイステップのデバッグは、「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!..");
}
}
4

4 に答える 4

2
  • 自分が何をしているのか本当にわかっていない限り、文字列を比較するには と を使用.equals()しません。==
inpText != "stop" //Not recommended
!"stop".equals(inpText) //recommended

ソース レベルが 1.7 未満の場合、文字列型の値をオンにすることはできません。変換可能な int 値または enum 変数のみが許可されます

于 2013-08-02T10:42:46.897 に答える
0

このコードでは、文字列ではなくポインターを比較しています。

while (inpText != "stop");

次のようになります。

while (!"stop".equals(inpText));
于 2013-08-02T10:33:32.267 に答える
0

変更しながら (inpText != "停止"); while (!(inpText.equals("stop")));

于 2013-08-02T10:34:10.890 に答える