2017-01-29 8 views
-3

Я пытаюсь сделать tamagotchi, и я хотел бы, чтобы объект мог получать более одной команды от одного и того же сканера. Поэтому, когда я печатаю «sleep», после этого я могу писать в консоли следующее, что он должен делать, как «есть».Java Switch Case с несколькими входами

Вот код:

import java.util.Scanner; 

public class Main { 

public static void main(String[] args) { 

    Tamagotchi blue = new Tamagotchi("Lenns", 8, 4, 6, 7); 

    Scanner scanner = new Scanner(System.in); 
    String Input = scanner.nextLine(); 

    switch (Input) { 
    case "Eat": 
     blue.eat(); 
     break; 

    case "Sleep": 
     blue.sleep(); 
     break; 

    case "Sport": 
     blue.sport(); 
     break; 

    case "Condition": 
     blue.output(); 
     break; 

    default: System.out.println("no valid option"); 
     break; 
    } 

Я надеюсь, что вы понимаете мой вопрос и может помочь мне.
Большое спасибо за ваше драгоценное время.

+0

Что не так с кодом, который у вас есть в настоящее время? – Natecat

+0

Я пишу свою первую команду, и после этого я не могу написать вторую, поэтому после того, как я напишу, программа «over» –

+1

Поместите свой код в цикл while. – trylimits

ответ

0

Некоторые небольшой настройки в ответ выше

String Input = null; 
while(true){ 
    try{ 
     Input = scanner.nextLine(); 
     switch (Input) { 
      case "Eat": 
       blue.eat(); 
       break; 
      case "Sleep": 
       blue.sleep(); 
       break; 
      case "Sport": 
       blue.sport(); 
       break; 
      case "Condition": 
       blue.output(); 
       break; 
      default: 
       throw new IllegalArgumentException("Invalid operation"); 
     } 
    }catch(IllegalArgumentException e){ 
     System.out.println(e.getMessage()); 
    }  
} 

Если и использовать этот вариант, и нужно добавить «бросить курить» случай или подобное, чтобы иметь возможность разорвать петлю.

1

Для повторения сегмента кода, который вам нужен цикл, в вашем случае, оберните чтение пользовательского ввода и включение случае поэтому действия можно повторить

String Input = null; 

while(true){ 
    Input = scanner.nextLine(); 
    switch (Input) { 
    case "Eat": 
     blue.eat(); 
     break; 

    case "Sleep": 
     blue.sleep(); 
     break; 

    case "Sport": 
     blue.sport(); 
     break; 

    case "Condition": 
     blue.output(); 
     break; 

    default: System.out.println("no valid option"); 
     break; 
    } 
+0

Спасибо, что это любопытные работы поместите свои петли в ту же команду все время, когда я хочу написать другую команду после этого. –

+0

@brianmichelson Вам нужно поставить 'nextLine' внутри цикла, как показано выше. – Carcigenicate