【问题标题】:Command Line Interface: Choosing options from a list by character命令行界面:按字符从列表中选择选项
【发布时间】:2015-01-26 17:27:39
【问题描述】:

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

【问题讨论】:

  • 为什么你认为你需要一个do while 循环?我并不是说我不同意使用一个。我只是好奇需求来自哪里
  • 这只是因为我需要选择 a,b,c,d 。如果我使用 d 程序退出。我不确定我是否应该使用 do while 或 if then .. 对不起,我在这里仍然一无所知。
  • 你知道如何写一个简单的whiledo while吗?

标签: java loops option


【解决方案1】:

1) 第一个问题:你从“enter.next()”得到什么?

A:看看这个教程:

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

public class ScanXan {
    public static void main(String[] args) throws 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) 第二个问题:“我必须使用循环,它是 do while...”

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

例如,也许您应该一直询问“选项”,直到用户选择“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"));
    ...

【讨论】:

    【解决方案2】:

    使用验证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
    

    【讨论】:

      【解决方案3】:

      这是一个例子:

      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;
                  }
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        • 1970-01-01
        • 2011-09-29
        • 2019-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多