2014-09-06 48 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");