2014-09-06 73 views
-1

我希望用戶輸入文本,而不是等於「開始」。當它等於「開始」時,我想顯示「布拉沃」。在我的代碼中,當我輸入「開始」它只是繼續要求輸入文本。我的代碼中缺少處理我描述的操作的內容。需要在Java中修復程序

import java.util.Scanner; 

public class Application { 
    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    String komanda = "a"; 
    do { 
     System.out.println("Unesi komandu "); 
     komanda = input.nextLine(); 
    } 
    while(komanda != "start"); 
    System.out.println("Bravo"); 
    } 
} 
+0

如果我只看到多了一個「Java字符串比較」的問題,我會扔我的貓窗外。 – SteveL 2014-09-06 16:50:58

回答

1

你必須使用equals方法在Java中比較字符串:

while (!komanda.equals("start")); 

甚至更​​好

while (!"start".equals(komanda)); 

如果komandanull

見這不會崩潰How do I compare strings in Java?瞭解更多信息。

+0

+1用於推薦左側的文字。 – Adam 2014-09-06 16:26:03

+0

@Adam'komanda'不可能是'null',Yoda條件不會自然地讀取。 – 2014-09-06 16:28:14

+0

某些字符串不爲空可能是程序工作的重要條件,所以避免NullPointerException不一定很好。只取決於上下文。 – Dici 2014-09-06 16:30:01

0

做這種方式

 Scanner input = new Scanner(System.in); 
     String komanda = "a"; 
     do { 
      System.out.println("Unesi komandu "); 
      komanda = input.nextLine(); 
     } 
     while(!"start".equals(komanda)); 
     System.out.println("Bravo");