好的,基本上我想知道这是否可行以及如何做到这一点。我有一个菜单,我希望这个switch语句能够识别用户输入的字符或字符串。
我正在编写一个小菜单程序:
import java.util.*;
import java.io.*;
import java.io.File;
import java.io.FileReader;
public class Personnel
{
// Instance Variables
private static String empName;
private static double wage;
public static void main(String[] args) throws Exception
{
clearScreen();
question();
printMenu();
exit();
}
public static void clearScreen()
{
System.out.println("\u001b[H\u001b[2J");
}
private static void exit()
{
System.exit(0);
}
private static void printMenu()
{
System.out.println("\t------------------------------------");
System.out.println("\t|Commands: n - New employee |");
System.out.println("\t| c - Compute paychecks |");
System.out.println("\t| r - Raise wages |");
System.out.println("\t| p - Print records |");
System.out.println("\t| d - Download data |");
System.out.println("\t| u - Upload data |");
System.out.println("\t| q - Quit |");
System.out.println("\t------------------------------------");
System.out.println("");
}
private static void question()
{
System.out.println("Enter command: ");
Scanner q = new Scanner(System.in);
// String input = q.nextLine();
switch (q.nextLine())
{
case "n":
System.out.println("Enter the name of new employee: ");
Scanner stdin = new Scanner(System.in);
System.out.println("Hourly (h) or salaried (s): ");
Scanner stdin2 = new Scanner(System.in);
if (stdin2.equals("h"))
{
System.out.println("Enter hourly wage: ");
Scanner stdin3 = new Scanner(System.in);
}
else
{
System.out.println("Enter annual salary: ");
Scanner stdin4 = new Scanner(System.in);
}
break;
/*
* case 9:
* System.out.println ("Please proceed.");
* new InputMenu();
* break;
* default:
* System.err.println ("Unrecognized option" ); break;
*/
}
}
}
我想要做的是让这个菜单工作,这样你就可以输入一个命令,然后我将编写运行方法,具体取决于输入的命令.switch语句是最好的方法吗?在他们输入信息后,我需要它“打破”回主菜单。在整个程序中的任何时候,如果他们输入q,则程序退出。我不确定这样做的最好方法。
谢谢!
答案 0 :(得分:1)
在jdk 7中支持在switch-case语句中使用String。请参考此链接以获取示例:http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html
希望这会有所帮助。
答案 1 :(得分:0)
Switch语句是最干净的方法之一,虽然我不认为它是“最好的”因为它的主观性。但是我来自C / C ++背景,而对于那些在编写Java之前主要编写C和C ++的人来说,switch
语句是通过多个案例的自然方式。它更具可读性。并且在C land中的某一点,假设它是最快的条件测试器,因为它使用基于O(1)的算法来找到匹配的情况,或者如果存在则匹配默认值。
但我不太确定它是否适用于JVM / javac,因为我从未对它进行过具体的性能测试。但总而言之,它在句法上最自然,最易读。