当前位置: 首页 > 知识库问答 >
问题:

如何让我的程序返回到主菜单?

何玉韵
2023-03-14

在第二个while循环(在用户选择抛硬币模拟器选项之后),当用户选择0时,我遇到了问题,程序没有像我希望的那样返回到主菜单,而是停止了,没有循环回到主菜单,让用户选择另一个选项。

有什么办法解决这个问题吗?我不能使用多个方法,因为这是我正在做的一个项目的要求。我已经被困在这一个部分很长时间了,现在(一个星期),并将感激地感谢任何指针或方向。

下面是当用户运行抛硬币模拟器后选择零时我的程序的样子。

======CS302工具箱======

键入您选择的代码字母:t

掷硬币模拟器

输入0退出。掷几次?

0

(然后它只是停止,而不是重定向回主菜单)

  {        
           Scanner anotherScanner = new Scanner(System.in);

            boolean usersSelection = false;

            outer:
                while (!usersSelection)
                { 
                    System.out.println("===== CS302 TOOL BOX =====\nT > COIN TOSS SIMULATOR\nG > GRADE ESTIMATOR\nC > COLOR CHALLENGE\nQ > QUIT");
                    String c;
                    System.out.print(""+ "Type code letter for your choice: ");

                    if (anotherScanner.hasNext("q|Q"))
                    {

                        c = anotherScanner.next();
                        //usersSelection = true;
                        System.out.println("\n Good-bye");
                        break;
                    }
                    else if (anotherScanner.hasNext("t|T")){

                        c = anotherScanner.next();
                        usersSelection = true;
                        System.out.println("");
                        System.out.println("COIN TOSS SIMULATOR");
                        System.out.println("");
                        System.out.println("Enter 0 to quit. How many tosses?");

                        Random rand = new Random();

                        Scanner insideScanner = new Scanner(System.in);
                        int feeble = insideScanner.nextInt();

                        double heads = 0;
                        double tails = 0;
                        boolean hvt;



                        while ( feeble != 0 ) { //Pay attention to this while loop

                            if (feeble == 0){break outer;}

                            for (int i =0; i < feeble; i++) {
                                hvt = rand.nextBoolean();

                                if (hvt == true){ heads++;}

                                else {tails++;}

                                }


                        System.out.println(heads + " heads and " + tails + " tails means " + (heads/(heads+tails)*100 + "% were heads"));
                        System.out.println("Enter 0 to quit. How many tosses?"); //I ask the question again
                        heads = 0;
                        tails = 0;
                        feeble = insideScanner.nextInt();//I get new input

                        }
                    }

共有1个答案

马阳曦
2023-03-14

usersselection仍然为true,因此外部循环(while(!usersselection))不会再次运行。

此外,如果(feeble==0){break outer;}是多余的,即使它确实工作,break outer;将结束程序(通过退出外部循环)。

 类似资料:
  • 我在Java中做了一个小数字猜谜游戏。我的主JFrame(主菜单)有三个J按钮,播放,声音和退出。 按下play按钮开始我的游戏,一系列的JOptionPanes出现,要求用户输入数字。它工作正常,游戏运行正常。但是当我按play键玩游戏的时候,我不能按exit或者sound键或者游戏中的其他任何键。我甚至不能按JFrame主窗口的X(关闭)按钮,直到我完全玩完游戏,或者关闭JOptionPane

  • 程序描述:人们使用jsliders输入用户分数,然后在游戏结束时点击按钮检查分数,它会告诉你谁得了第一、第二、第三等分数。 我不确定的是如何让程序告诉我得分最高的球员姓名。我把它分类了,它告诉你实际的分数,只是没有名字。 我基本上是在寻找: 代码:

  • 我正在做一个关于模拟正在处理的CPU工作的项目。基本上,用户将输入一个工作,该工作的长度将被处理,优先级键(从-20到19,从-20开始以获得更高的优先级)。到目前为止,我已经让所有这些工作,除了程序正确终止。基本上,当我的优先级队列中的所有作业都被处理完时,我需要程序终止。当每个作业被处理时,它将从长度中减去,直到它为0。当它为0时,它将从优先级队列中移除。当没有剩余的作业(优先级队列是空的)时

  • 我有一个程序正在显示结果的条形图。我想等到用户关闭条形图,继续下一行代码,询问他们是否要为该图输入新信息。 正在发生的是,柱状图的场景将打开,但什么也不会显示,并且JOptionPane立即弹出问题。如果我点击“否”,则显示图表,但程序结束。如果我点击“是”,程序将返回到前面的对话框窗口,但在其他对话框结束之前不会显示图表。 我想等待提示用户,直到他们关闭条形图。在这一点上,我是如此的沮丧,以至于

  • 问题内容: 在C程序中,如果要从终端提供一些输入,则可以通过以下方式提供: 同样,如果我们想获得函数的返回值,那么我们如何得到它呢? 在每一个中我们写或; 我怎么知道我在航站楼退回了什么? 编辑:1 我得到的是,我们可以得到的返回值,但是它仅允许我成功返回小于125的值(在Linux中)。so 无法成功接收到大于此值的返回值 为什么是返回类型?为什么不保留它? 编辑2 如果返回的值大于125 ,我

  • 我在GCP上有一个秘密,即问候语的秘密值是“你好”。在我的应用程序中,我有以下代码。 我有值(项目/221608087928 /secrets/greeting)通过运行以下命令。 我假设我的浏览器返回“Hello”。但它返回“//projects/221608087928/secrets/greeting”。我在POM中安装了gcp secret manager依赖项。如何让以下代码返回机密值?