命令行界面:逐个字符地选择选项

时间:2015-01-26 17:27:40

标签: java loops option

如何在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,我会感到困惑。

3 个答案:

答案 0 :(得分:1)

1)第一个问题:你从&#34; enter.next()&#34;回来了什么?

答:看看这个教程:

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

公共类ScanXan {     public static void main(String [] args)抛出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)第二个问题:&#34;我必须使用循环,这是做...&#34;

答:换句话说,你必须循环直到某些条件变为真实

例如,也许你应该继续问&#34;选项&#34;直到用户选择&#34; D.出口&#34;

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"));
    ...

答案 1 :(得分: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

答案 2 :(得分: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;
            }
        }
    }
}