java - 想要返回 Switch Case 中的主菜单

标签 java switch-statement do-while

下面是我计算年龄的代码。

我想在执行案例 1 时再次显示主菜单:选择您的选择:...

我正在休息,但这不起作用。

在我的控制台中,完成后再次显示输入您的出生日期(DD):

我想显示:选择您的选择。有什么想法吗?

    import java.util.Calendar;
    import java.util.Scanner;

    public class Switch {
        public static void main(String args[])
        {
            System.out.println("Select your choice");
            System.out.println("1. To Calculate your Age");
            System.out.println("2. Calculator");
            System.out.println("3. To Exit");
            boolean exit=false;
            Scanner sc1=new Scanner(System.in);
            int choice=sc1.nextInt();
            do{
                switch(choice)
                {   
                case 1:

                    Calendar c1 = Calendar.getInstance();
                    int currDate = c1.get(Calendar.DATE);
                    //System.out.println(currDate);

                    int currMonth = c1.get(Calendar.MONTH)+1;
                    //System.out.println(currMonth);

                    int currYear=c1.get(Calendar.YEAR);
                    //System.out.println(currYear);
                    Scanner sc2=new Scanner(System.in);
                    System.out.println("Enter your Birth date(DD): ");
                    int birthDate=sc2.nextInt();

                    System.out.println("Enter your Birth month(MM): ");
                    int birthMonth=sc2.nextInt();

                    System.out.println("Enter your Birth year(YYYY): ");
                    int birthYear=sc2.nextInt();
                    int calculateDate=0;


                    calculateDate=currDate-birthDate;

                    int calculateMonth=currMonth-birthMonth;
                    int calculateYear=currYear-birthYear;

                    System.out.println("You are : "+ calculateDate+"days "+" "+calculateMonth+"months "+calculateYear+"years OLD");
                    System.out.println("thank you..");
                    System.out.println("\n");
                    break;
            case 2:

                   System.out.println("This is case 2");
                   break;

            case 3:

                    exit=true;
                    break;

            }
        }while(!exit);  
    }
}

最佳答案

将下面的行移到 do...while 中,因为 do while 至少执行一次。

        System.out.println("Select your choice");
        System.out.println("1. To Calculate your Age");
        System.out.println("2. Calculator");
        System.out.println("3. To Exit");
        Scanner sc1 = new Scanner(System.in);
        int choice = sc1.nextInt();

SwitchCase.java

import java.util.Calendar;
import java.util.Scanner;

public class SwitchCase {
    public static void main(String args[]) {
        boolean exit = false;
        do {
            System.out.println("Select your choice");
            System.out.println("1. To Calculate your Age");
            System.out.println("2. Calculator");
            System.out.println("3. To Exit");
            Scanner sc1 = new Scanner(System.in);
            int choice = sc1.nextInt();
            switch (choice) {
            case 1:
                Calendar c1 = Calendar.getInstance();
                int currDate = c1.get(Calendar.DATE);
                // System.out.println(currDate);
                int currMonth = c1.get(Calendar.MONTH) + 1;
                // System.out.println(currMonth);
                int currYear = c1.get(Calendar.YEAR);
                // System.out.println(currYear);
                Scanner sc2 = new Scanner(System.in);
                System.out.println("Enter your Birth date(DD): ");
                int birthDate = sc2.nextInt();
                System.out.println("Enter your Birth month(MM): ");
                int birthMonth = sc2.nextInt();
                System.out.println("Enter your Birth year(YYYY): ");
                int birthYear = sc2.nextInt();
                int calculateDate = 0;
                calculateDate = currDate - birthDate;
                int calculateMonth = currMonth - birthMonth;
                int calculateYear = currYear - birthYear;
                System.out.println("You are : " + calculateDate + "days " + " "
                        + calculateMonth + "months " + calculateYear
                        + "years OLD");
                System.out.println("thank you..");
                System.out.println("\n");
                break;
            case 2:
                System.out.println("This is case 2");
                break;
            case 3:
                exit = true;
                break;
            }
        } while (!exit);
    }
}

示例运行

Select your choice
1. To Calculate your Age
2. Calculator
3. To Exit
1
Enter your Birth date(DD): 
1
Enter your Birth month(MM): 
1
Enter your Birth year(YYYY): 
1920
You are : 14days  6months 97years OLD
thank you..


Select your choice
1. To Calculate your Age
2. Calculator
3. To Exit

关于java - 想要返回 Switch Case 中的主菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45117385/

相关文章:

c++ - switch 语句中的 strstr

java - java中的数组程序

java - session 变量中的 Google App Engine 缓存列表

xml - XSD:非此即彼语法

javascript - Switch() 不适用于 Math.random() 数字

c - 为什么输入终止参数后while循环一直在运行?

Java Do-While 循环 - 如何使用 Q 选项结束程序

java - 通过 Java 在 BMC Remedy 中创建票证

java - Spring Boot + REST 应用程序出现 "No message available"错误

java - Dao 类的单一职责原则