簡體   English   中英

如何用 do while 在 java 中做一個切換菜單

[英]How to do a switch menu in java with do while

再會!

這是我在java中的一個項目的切換菜單!

當我輸入一個不同的字母(它不在開關中的字母)時,我收到此錯誤消息,當我嘗試其中一個正確的字母時,我再次收到相同的錯誤消息:

Exception in thread "main" java.util.NoSuchElementException
        at java.base/java.util.Scanner.throwFor(Scanner.java:937)
        at java.base/java.util.Scanner.next(Scanner.java:1478)
        at teste.menu(teste.java:65)
        at teste.main(teste.java:16)

這是我的代碼:

import java.util.Scanner;

public class teste{
  public static void main(String[] args){

    char ch;
    do {
      ch = menu();
      switch (ch){
        case 'a':
          //String name ="resultado.csv";
          //ReadFile(name);
          break;
        case 'b':
          //WriteFile();
          break;
        case 'c':
          System.out.println("nome");
          break;
        case 'd':
          System.out.println("nome");
          break;
        case 'e':
          System.out.println("nome");
          break;
        case 'f':
          System.out.println("nome");
          break;
        case 'g':
          System.out.println("nome");
          break;
        case 'h':
          System.out.println("nome");
          break;
        default:
          System.out.println("a-k!");
          break;
      }
    }while (ch != 'k');

    System.exit(0);

  }

  public static char menu(){
    System.out.println("Chose: ");
    System.out.println("a: Show");
    System.out.println("b: Write");
    System.out.println("c: All Numbers Are the Same");
    System.out.println("d: Sum Between Two Integers");
    System.out.println("e: Repeat the String");
    System.out.println("f: It is Palindrome");
    System.out.println("g: Display");
    System.out.println("h: Display");
    System.out.println("k: Quit");
    System.out.println("Insira a opção: ");
    Scanner input = new Scanner(System.in);
    char ch = input.next().charAt(0);
    input.close();
    return ch;
  }

}

我嘗試使用數字,但收到相同的錯誤消息

每次調用menu時不要重新創建掃描儀。 在 main 開始時創建一次並使用它,例如:

public static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
    // same code...until end of main...
    input.close();
    System.exit(0);
}

menu中:

public static char menu() {
    // same prompts...

    //REMOVE    Scanner input = new Scanner(System.in);
    char ch = input.next().charAt(0);
    //REMOVE    input.close();
    return ch;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM