2015-01-26 2 views
1

Как создать меню опций в Java? Это, насколько я знаю:Интерфейс командной строки: выбор опций из списка по символу

import java.util.Scanner; 

public class Mini { 
    public static void main(String[] args) { 
    Scanner enter = new Scanner(System.in); 

    System.out.println("Select an option: "); 
    System.out.println(" A. Hat "); 
    System.out.println(" B. Orange "); 
    System.out.println(" C. Bounty "); 
    System.out.println(" D. Exit "); 

    choice = enter.next(); /* <--what do i put because i use char? */ 
    } 
} 

, и я должен использовать петлю, которая do-while. Я смущен, если я использую char.

+0

Почему вы думаете, что нужно сделать 'while' цикл? Я не говорю, что я не согласен с этим. Мне просто интересно, где это требование идет от –

+0

, это просто потому, что мне нужно выбрать a, b, c, d. если я использую d, выйдите из программы. я не уверен, что я должен использовать делать, пока или если тогда .. Извините, я все еще не знаю. – user3083769

+0

Знаете ли вы, как писать простые 'while' или' do while'? –

ответ

1

1) Первый вопрос: Что вы получаете от «enter.next()»?

A: Посмотрите на этот учебник:

http://docs.oracle.com/javase/tutorial/essential/io/scanning.html

общественного класса ScanXan { государственной статической силы основных (String [] арг) броски IOException {

Scanner s = null; 
    try { 
     s = new Scanner(new BufferedReader(new FileReader("xanadu.txt"))); 
     while (s.hasNext()) { 
      System.out.println(s.next()); 
      ... 

Выход:

In 
Xanadu 
did 
Kubla 
Khan 
A 
stately 
pleasure-dome 
... 

2) Второй вопрос: «Я должен который используется в то время как ... »

A: Другими словами, вам необходимо установить петлю , пока какое-то состояние не станет истинным..

Например, возможно, вам следует продолжать спрашивать «вариант», пока пользователь не выберет «D. Exit».

public class Mini { 

    public static void main(String[] args) { 
    Scanner enter = new Scanner(System.in); 
    String choice; 
    do { 
     System.out.println("Select an option: "); 
     System.out.println(" A. Hat "); 
     ... 
     System.out.println(" D. Exit "); 
     choice = enter.next(); 
    } while (!choice.equalsIgnoreCase ("d")); 
    ... 
0

Использование проверки while цикла:

ArrayList<String> options = new ArrayList<String>(); 
options.add("A"); 
options.add("B"); 
options.add("C"); 
options.add("D"); 

String answer = ""; 

while(!options.contains(answer)) { 
    System.out.println("Select an option: "); 
    System.out.println(" A. Hat "); 
    System.out.println(" B. Orange "); 
    System.out.println(" C. Bounty "); 
    System.out.println(" D. Exit "); 
    answer = enter.nextLine(); 
} 

// answer is now either A, B, C, D 
0

Вот пример:

import java.util.Scanner; 


public class Mini { 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 

     System.out.println("A: Say something"); 
     System.out.println("B: Say something"); 
     System.out.println("C: Say something"); 
     System.out.println("D: Exit"); 

     while(true) { 
      char input = in.next().toCharArray()[0]; 

      switch(input) { 
      case 'A': 
       System.out.println("Something"); 
       break; 
      case 'B': 
       System.out.println("Something"); 
       break; 
      case 'C': 
       System.out.println("Something"); 
       break; 
      case 'D': 
       System.exit(0); 
       break; 
      default: 
       continue; 
      } 
     } 
    } 
}