如果使用do while循环提示“请输入您的模块选择”时选择了除1-11以外的任何字符,我正在尝试使程序返回菜单列表。
当前,即使用户未选择有效选项,程序也将继续运行
我希望在“请选择一个有效的模块”之后返回菜单列表。
Scanner scanner = new Scanner(System.in);
public void moduleSelection() {
System.out.println("1\t Algorithms");
System.out.println("2\t Advanced Programming");
System.out.println("3\t Computer Architecture and Operating Systems");
System.out.println("4\t Artificial intelligence and Machine Learning");
System.out.println("5\t Computer and Mobile Networks");
System.out.println("6\t Software Engineering");
System.out.println("7\t Big Data Analyics");
System.out.println("8\t Cyber Security Threats");
System.out.println("9\t Research Methods");
System.out.println("10\t Research Project Proposal");
System.out.println("11\t Individual Research Project");
System.out.println("Please entire your Module choice");
int choice;
choice = scanner.nextInt();
switch (choice)
{
case 1: System.out.println("Algorithms");
break;
case 2: System.out.println("Advanced Programming");
break;
case 3: System.out.println("Computer Architecture and Operating Systems");
break;
case 4: System.out.println("Artificial intelligence and Machine Learning");
break;
case 5: System.out.println("Computer and Mobile Networks");
break;
case 6: System.out.println("Software Engineering");
break;
case 7: System.out.println("Big Data Analytics");
break;
case 8: System.out.println("Cyber Security Threats");
break;
case 9: System.out.println("Research Methods");
break;
case 10: System.out.println("Research Project Proposal");
break;
case 11: System.out.println("Individual Research Project");
break;
default: System.out.println("Please select a valid Module");
break;
}
}
答案 0 :(得分:0)
a。定义一个变量以验证用户是否输入了有效数字。 b。在do while循环中,检查数字是否有效
例如:
do{
System.out.println("Please entire your Module choice");
int choice;
choice = scanner.nextInt();
boolean invalidChoice=false;
switch (choice){
case 1:
...
break;
case 2:
...
break;
default:
invalidChoice=true;
print ("Please enter valid choice");
} while(invalidChoice);
答案 1 :(得分:0)
根据我作为注释的一部分添加的假设,最好为用户添加帮助文本,例如“请选择整个模块(1-11)”。
int choice=0;
boolean isChoiceValid ;
public void moduleSelection() {
while(!isChoiceValid) {
System.out.println("1\t Algorithms");
System.out.println("2\t Advanced Programming");
System.out.println("3\t Computer Architecture and Operating Systems");
System.out.println("4\t Artificial intelligence and Machine Learning");
System.out.println("5\t Computer and Mobile Networks");
System.out.println("6\t Software Engineering");
System.out.println("7\t Big Data Analyics");
System.out.println("8\t Cyber Security Threats");
System.out.println("9\t Research Methods");
System.out.println("10\t Research Project Proposal");
System.out.println("11\t Individual Research Project");
System.out.println("Please entire your Module choice (1-11)");
choice = scanner.nextInt();
if(choice>=1 && choice<=11)
{
isChoiceValid =true;
}
}
答案 2 :(得分:0)
您需要在侧循环中保持开关盒的状态。 除此之外,您还需要提供一个退出循环的选项。 我将存在条件作为99输入。
public static void main(String[] args) {
boolean doYouWantToExit = false;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("1\t Algorithms");
System.out.println("2\t Advanced Programming");
System.out.println("3\t Computer Architecture and Operating Systems");
System.out.println("4\t Artificial intelligence and Machine Learning");
System.out.println("5\t Computer and Mobile Networks");
System.out.println("6\t Software Engineering");
System.out.println("7\t Big Data Analyics");
System.out.println("8\t Cyber Security Threats");
System.out.println("9\t Research Methods");
System.out.println("10\t Research Project Proposal");
System.out.println("11\t Individual Research Project");
System.out.println("99\t Do you want to exist");
System.out.println("Please entire your Module choice");
int choice;
choice = Integer.parseInt(scanner.nextLine());
switch (choice)
{
case 1: System.out.println("Algorithms");
break;
case 2: System.out.println("Advanced Programming");
break;
case 3: System.out.println("Computer Architecture and Operating Systems");
break;
case 4: System.out.println("Artificial intelligence and Machine Learning");
break;
case 5: System.out.println("Computer and Mobile Networks");
break;
case 6: System.out.println("Software Engineering");
break;
case 7: System.out.println("Big Data Analytics");
break;
case 8: System.out.println("Cyber Security Threats");
break;
case 9: System.out.println("Research Methods");
break;
case 10: System.out.println("Research Project Proposal");
break;
case 11: System.out.println("Individual Research Project");
break;
case 99:
doYouWantToExit = true;
break;
default: System.out.println("Please select a valid Module");
break;
}
}while(!doYouWantToExit);
}
答案 3 :(得分:0)
您可以通过简单地添加while
或do-while
循环来实现此目的
更新了您的方法。检出:
private void moduleSelection() {
int choice = -1;
while (true) {
System.out.println("1\t Algorithms");
System.out.println("2\t Advanced Programming");
System.out.println("3\t Computer Architecture and Operating Systems");
System.out.println("4\t Artificial intelligence and Machine Learning");
System.out.println("5\t Computer and Mobile Networks");
System.out.println("6\t Software Engineering");
System.out.println("7\t Big Data Analyics");
System.out.println("8\t Cyber Security Threats");
System.out.println("9\t Research Methods");
System.out.println("10\t Research Project Proposal");
System.out.println("11\t Individual Research Project");
System.out.println("0\t Exit");
System.out.println("Please entire your Module choice");
choice = scanner.nextInt();
switch (choice) {
case 0:
System.exit(1);
break;
case 1:
System.out.println("Algorithms");
break;
case 2:
System.out.println("Advanced Programming");
break;
case 3:
System.out.println("Computer Architecture and Operating Systems");
break;
case 4:
System.out.println("Artificial intelligence and Machine Learning");
break;
case 5:
System.out.println("Computer and Mobile Networks");
break;
case 6:
System.out.println("Software Engineering");
break;
case 7:
System.out.println("Big Data Analytics");
break;
case 8:
System.out.println("Cyber Security Threats");
break;
case 9:
System.out.println("Research Methods");
break;
case 10:
System.out.println("Research Project Proposal");
break;
case 11:
System.out.println("Individual Research Project");
break;
default:
System.out.println("Please select a valid Module");
break;
}
}
}
答案 4 :(得分:0)
您可以将代码更改为:
int choice;
choice = scanner.nextInt();
if(choice>=1&& choice<=11){
switch (choice)
{ ...
答案 5 :(得分:0)
您可以使用标签:
loop:
while (true) {
System.out.println("Please entire your Module choice");
int choice;
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("Algorithms");
break loop;
case 2:
System.out.println("Advanced Programming");
break loop;
case 3:
System.out.println("Computer Architecture and Operating Systems");
break loop;
case 4:
System.out.println("Artificial intelligence and Machine Learning");
break loop;
case 5:
System.out.println("Computer and Mobile Networks");
break loop;
case 6:
System.out.println("Software Engineering");
break loop;
case 7:
System.out.println("Big Data Analytics");
break loop;
case 8:
System.out.println("Cyber Security Threats");
break loop;
case 9:
System.out.println("Research Methods");
break loop;
case 10:
System.out.println("Research Project Proposal");
break loop;
case 11:
System.out.println("Individual Research Project");
break loop;
}
}
}
答案 6 :(得分:0)
public void moduleSelection() {
boolean switch;
do{
switch = false;
System.out.println("1\t Algorithms");
System.out.println("2\t Advanced Programming");
System.out.println("3\t Computer Architecture and Operating Systems");
System.out.println("4\t Artificial intelligence and Machine Learning");
System.out.println("5\t Computer and Mobile Networks");
System.out.println("6\t Software Engineering");
System.out.println("7\t Big Data Analyics");
System.out.println("8\t Cyber Security Threats");
System.out.println("9\t Research Methods");
System.out.println("10\t Research Project Proposal");
System.out.println("11\t Individual Research Project");
System.out.println("Please entire your Module choice");
int choice;
choice = scanner.nextInt();
switch (choice)
{
case 1: System.out.println("Algorithms");
break;
case 2: System.out.println("Advanced Programming");
break;
case 3: System.out.println("Computer Architecture and Operating Systems");
break;
case 4: System.out.println("Artificial intelligence and Machine Learning");
break;
case 5: System.out.println("Computer and Mobile Networks");
break;
case 6: System.out.println("Software Engineering");
break;
case 7: System.out.println("Big Data Analytics");
break;
case 8: System.out.println("Cyber Security Threats");
break;
case 9: System.out.println("Research Methods");
break;
case 10: System.out.println("Research Project Proposal");
break;
case 11: System.out.println("Individual Research Project");
break;
default: System.out.println("Please select a valid Module");
switch = true;
break;
}
}while(switch)
}