在“切换”菜单上使用“ do-while”循环

时间:2019-05-14 04:23:07

标签: java switch-statement

如果使用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;
    }

}

7 个答案:

答案 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)

您可以通过简单地添加whiledo-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)
}