首页 > 解决方案 > 回答几个问题后如何返回菜单?

问题描述

我目前正在创建一个程序,用户可以在其中输入一组特定的问题。并且程序必须在完全回答完所有问题后返回菜单。我该怎么做?

package com.company;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.print("""
                \n \nAre you ready to take the quiz?
                Enter "Y" to proceed or "N" to exit the program:""");

        String TakeQuiz = input.nextLine();

        if (TakeQuiz.equalsIgnoreCase("Y"))
            do {
            //blocks of code

                    }
                }
            }

                System.out.println("Do you want to take the quiz again?");
                String RetakeQuiz = input.nextLine();
                while (RetakeQuiz.equalsIgnoreCase("Y")) ;
            

        else {
            System.out.println("We hope to see you again soon!");
            System.exit(0);



        }
    }
}

标签: javaloops

解决方案


有很多方法可以实现您想要的,我不会弄乱主要方法并将代码分解到另一个函数并在那里循环。

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {

        for(;;)
            takeQuiz();
    }

    public static void takeQuiz(){
        Scanner input = new Scanner(System.in);

        System.out.print("\n \nAre you ready to take the quiz?" +
                "Enter \"Y\" to proceed or \"N\" to exit the program:");

        String takeQuiz = input.nextLine();

        if (takeQuiz.equalsIgnoreCase("Y")) {

            System.out.println("Running code...");
            System.out.println("Question 1");
            System.out.println("Question 2");
            System.out.println("Question 3");
        }

        // retake
        if (takeQuiz.equalsIgnoreCase("R")){
            takeQuiz();
        }
        if (takeQuiz.equalsIgnoreCase("N")){
            System.out.println("We hope to see you again soon!");
            System.exit(0);
        }
    }
}

注意引号 \" 的转义字符和多行字符串的 +

  • Java 15 及更高版本允许将三引号作为Java 文本块 ,因此您的字符串消息应该是有效的

推荐阅读