测试成绩评分器-Java初学者

测试成绩评分器-Java初学者,java,if-statement,Java,If Statement,我有一个问题要为我们班回答。问题如下: 对于作业的第二部分,您需要创建一个单独的文件调用“RunMenu”或“RunMyPrograms”。该文件将包含main方法,并具有循环结构,允许用户选择要运行的程序 1) 产品无底片 2) 找到十二个 3) 最大最小平均值 4) 字母等级 5) 出口 祝你好运 我现在写的代码是这样的,但是我遇到了一个障碍,我的大脑已经不知道我需要做什么。我至少在正确的轨道上吗 public class RunMyPrograms { public static voi

我有一个问题要为我们班回答。问题如下:

对于作业的第二部分,您需要创建一个单独的文件调用“RunMenu”或“RunMyPrograms”。该文件将包含main方法,并具有循环结构,允许用户选择要运行的程序

1) 产品无底片

2) 找到十二个

3) 最大最小平均值

4) 字母等级

5) 出口

祝你好运

我现在写的代码是这样的,但是我遇到了一个障碍,我的大脑已经不知道我需要做什么。我至少在正确的轨道上吗

public class RunMyPrograms 
{
public static void main(String args[])
{
    RunMyPrograms rmp = new RunMyPrograms ();
    rmp.menu();
}


public static void menu()
{
    Scanner sc = new Scanner(System.in);
    int input = 0;
    do
    {
        System.out.println("Please choose from the following menu:");
        System.out.println("1) ProductNoNegative");
        System.out.println("2) FirstLastTwelve");
        System.out.println("3) MinMaxAvg");
        System.out.println("4) LetterGrade");
        System.out.println("5) Exit");
        String input2;
        input = sc.nextInt();
        if (input == 1)
        {
            ProductNoNegative pnn = new ProductNoNegative();
            pnn.showMessage();
            //if(input2.equalsIgnoreCase("one"))

        }
        else if(input == 2)
        {
            FirstLastTwelve flt = new FirstLastTwelve();
            flt.showTwelve(); 
        }
        else if(input == 3)
        {
            MinMaxAvg mma = new MinMaxAvg();
            mma.showMinMaxAvg();
        }
        else if(input == 4)
        {
            LetterGrade lg = new LetterGrade();
            lg.showLetter();
        }
         else
        {
            System.out.println("input not recognized please try again");
        }


    }while (input !=5);
}

这个程序将以无控制的无限循环结束。 首先,您需要取消对该行的注释并添加一个“=”

然后方法
public void menu()
使其成为静态
public static void menu()
因此您可以从主方法调用它,而不创建类似so
menu()的对象

然后循环正常,但将while调用为
while(true)
,并在其中添加
else if(输入==-1)
break
,以结束循环

编辑:还可以在exit else if语句上写一条消息,这样更方便用户。
还有一件事,你不需要为每个选项创建一个类,你可以在一个类中拥有所有的方法。

我确信它必须是
,而(input!=5)
,不是吗?你下一步想做什么也不太清楚。一切似乎都很好..没错,当我只调用了3个程序时,忘了编辑它了。接下来我要做的是让这个程序运行我的程序通过输入给用户他们正在请求的选定程序。我已经对这部分作业要求的其他4个程序进行了编码。您还注释掉了输入的扫描。如果你不这样做,你会有一个无休止的循环。无论如何,你应该做的是调用运行这些程序的方法。我已经用我当前的代码更新了我的原始帖子。我仍然不知道如何处理底部的while语句。当我在线程“main”java.lang中运行时,我收到了这段代码:Exception。UnsupportedOperationException:还不受支持。在edu.umsl.is3806.MinMaxAvg.showMinMaxAvg(MinMaxAvg.java:51)在edu.umsl.is3806.RunMyPrograms.menu(RunMyPrograms.java:53)在edu.umsl.is3806.RunMyPrograms.main(RunMyPrograms.java:20)用while(true)替换while语句,如果(input=-1)中断,则再添加一个;循环中的语句。这样,当用户提供-1时,循环将结束。您的循环与现在一样工作,但我告诉您的方式更清晰、更友好。您得到的异常来自类MinMaxAvg中的showMinMaxAvg()方法,可能代码中的某个地方有一个throw UnsupportedOperationException
input = sc.nextInt();