使用Java在Eclipse中执行程序。我想要做的是当我执行程序时,我希望向用户提供一个选择。我完成了所有的计算等,我只是不确定如何使这个菜单为用户提供选择。我正在寻找的例子:
To enter an original number: Press 1
To encrypt a number: Press 2
To decrypt a number: Press 3
To quit: Press 4
Enter choice:
public static void main(String[] args) {
Data data = new Data();
data.menu(); }
}
答案 0 :(得分:4)
您可以使用扫描仪从System.in
读取输入,如下所示:
public static void main(String[] args) {
Data data = new Data();
data.menu();
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
switch (choice) {
case 1:
// Perform "original number" case.
break;
case 2:
// Perform "encrypt number" case.
break;
case 3:
// Perform "decrypt number" case.
break;
case 4:
// Perform "quit" case.
break;
default:
// The user input an unexpected choice.
}
}
请注意,这将要求用户输入数字并按Enter键,然后再继续执行。如果他们输入无效输入,这将停止;如果你想让它再次提示它们,你将需要将它包装在某种循环中,具体取决于你希望系统的行为。
如果用户输入无法解析为整数的内容, Scanner#nextInt
可能会抛出异常。您可以捕获此异常并适当地处理它。如果用户输入的超出有效选项范围的整数(即它不在1-4的范围内),则它将落入default
语句的switch
分支,其中你可以再次处理错误案例。
答案 1 :(得分:3)
为简单起见,我建议使用一个返回选项整数值的静态方法。
public static int menu() {
int selection;
Scanner input = new Scanner(System.in);
/***************************************************/
System.out.println("Choose from these choices");
System.out.println("-------------------------\n");
System.out.println("1 - Enter an original number");
System.out.println("2 - Encrypt a number");
System.out.println("3 - Decrypt a number");
System.out.println("4 - Quit");
selection = input.nextInt();
return selection;
}
完成方法后,您将在主方法中相应地显示它,如下所示:
public static void main(String[] args) {
int userChoice;
Scanner input = new Scanner(System.in);
/*********************************************************/
userChoice = menu();
//from here you can either use a switch statement on the userchoice
//or you use a while loop (while userChoice != the fourth selection)
//using if/else statements to do your actually functions for your choices.
}
希望这会有所帮助。