将switch语句与do / while语句结合使用后,循环回到我的if语句

时间:2018-10-21 07:16:59

标签: java if-statement while-loop switch-statement do-while

您好,编码专家们。这里只是一个菜鸟,目前卡在泡菜中。 我正在编写一个数学训练程序,并且需要循环回到我的主菜单。 有一个无限循环,我很难摆脱。如果用户一直在回答正确的答案,那么它只会继续问另一个问题。选择是将生成一个新答案,并将继续这样做(无限)。选择否将终止程序。 如果他们选择“否”,我该如何使用户回到主菜单? 另外,如果他们选择“是”,那么如何使该问题最多循环一个新方程式10次,然后再将用户带回到我的主菜单。

这是我的代码:


import java.util.Scanner;

import java.util.Random;

public class MathPracticeProgram
{

    public static void main(String[] args)
    {
        //Scenario: Make a practice program for Addition, Subtraction, Multiplication, and Division. Include exit option as well.
        Random rand = new Random ();
        Scanner scan = new Scanner (System.in);
        int menu = (5);
        int num1, num2, user_answer, total;

        System.out.println("Math Practice Porgram");
        System.out.println("Please Input Your Choice via the number\n");
        System.out.println("1. Addition\n2. Subtraction\n 3. Multiplication\n 4. Division\n Exit Program by entering 0");
        System.out.println("\nYour choice:");
        menu = scan.nextInt();
        System.out.println("\n");

        //Menu Selection
        if (menu <= 5 || menu > 0)
        {
            switch(menu)
            {
                //Exit
                case 0:
                {
                    System.out.println("Thank you for using my math practice program.");
                }
                    break;
                //Addition  
                case 1:
                {
                    System.out.println("You have selected Addition");
                    String user_again;
                    do 
                    {
                        num1 = rand.nextInt(99);
                        num2 = rand.nextInt(99);
                        int counter = 0;

                        do
                        {
                            System.out.println("New solution to solve: ");
                            System.out.println(num1 + " + " + num2 + " = ");

                            user_answer = scan.nextInt();
                            System.out.println("\n");
                            total = num1 + num2;

                            if(user_answer != total)
                            {
                                System.out.println("Incorrect...");
                                counter++;
                            }

                        }while (user_answer != total && counter < 3);
                        System.out.println("Correct! Do you want another problem? yes or no: ");
                        user_again = scan.next();

                    }while(user_again.equalsIgnoreCase("yes"));
                    System.out.println("\nChanging to Main Menu\n");
                }   
                        break;
                //Subtraction
                case 2:
                {

                }
                    break;
                //Multiplication
                case 3:
                {
                    System.out.println("Multiplication");
                }
                    break;
                //Division
                case 4:
                {
                    System.out.println("Division");
                }
                    break;

            }       
        }

    }

}

0 个答案:

没有答案
相关问题