2014-09-06 2 views
-1

Я хочу, чтобы пользователь вводил текст, пока он не равен «start». Когда он равен «start», я хочу показать «Bravo». В моем коде, когда я вхожу в «start», он просто продолжает просить ввести текст. Что не хватает в моем коде для обработки описанной операции.Нужно исправить программу в 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

если я вижу только один «ява строки сравнить» вопрос, я брошу мою кошку из окна. – SteveL

ответ

1

Вы должны использовать метод Equals для сравнения строк в Java:

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

или даже лучше

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

это не откажет, если komanda является null

См How do I compare strings in Java? для получения дополнительной информации.

+0

+1 для рекомендации литерала с левой стороны. – Adam

+0

@Adam 'komanda' не может быть« пустым », и условие Йоды не читается так естественно. –

+0

Иногда некоторая строка, не являющаяся нулевым, может быть важным условием для работы программы, поэтому не обязательно удалять исключение NullPointerException. Просто зависит от контекста. – Dici

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"); 
Смежные вопросы