Возвращаясь к моему оператору if после использования оператора switch в сочетании с оператором do / while - PullRequest
0 голосов
/ 21 октября 2018

Привет, товарищи по программированию.Просто нуб, который сейчас застрял в рассоле.Я пишу учебную программу по математике, и мне нужно вернуться к главному меню.Есть бесконечный цикл, из которого мне трудно выбраться.Если пользователь продолжает отвечать на правильный ответ, он просто продолжает спрашивать о другой проблеме.Выбор да сгенерирует новый ответ и продолжит делать это (бесконечно).Выбор нет прекратит программу.Как мне сделать так, чтобы, если они выбирают нет, это возвращает пользователя обратно в главное меню?Кроме того, как сделать так, чтобы, если они выбирают «да», проблема только повторяет новое уравнение не более 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;

            }       
        }

    }

}
...