0

这是产生 2 个错误的代码(我很抱歉,因为这是我第一次使用这个网站并且不完全确定如何做所有事情,但错误已在第一个错误的菜单 m 和第二个错误的 scanchoice 的 s 处标记错误)

java:22: 错误: 找不到符号choiceentry = menu();

java:52: 错误: 找不到符号choiceentry = scanchoice.nextInt();

import java.util.*;
import java.io.*;

public class Student
{

    public static void main(String[] args)
    {

        int choiceentry;
        Scanner input = new Scanner(System.in);

        choiceentry = menu();
            while (choiceentry != 6)
            {
                if(choiceentry == 1) 
                {
                // ..do something
                }
                else if(choiceentry == 2)
                {
                //..something else
                }
                else if(choiceentry == 3)
                {
                //...something else
                }
                else if(choiceentry == 4)
                {
                // ..something else
                }
                else if(choiceentry == 5)
                {
                //..something else
                }
                else if(choiceentry == 6)
                {
                System.exit(0);
                }
                else
            {
            System.out.println("Enter \"1\", \"2\", \"3\", \"4\", \"5\" or \"6\"");
            choiceentry = scanchoice.nextInt();
            }
        }


    }
}

这是我用来设置菜单的代码,它构建得很好

import java.util.*;
import java.io.*;

public class Enroll
{

//Creation of Console Menu
    public static int menu()
        {
        int selection;
        Scanner input = new Scanner(System.in);

        /***************************************************/

        System.out.println("Please Select an Option:");
        System.out.println("-------------------------");
        System.out.println("0 - Input Course Details");
        System.out.println("1 - Search");
        System.out.println("2 - Add Student");
        System.out.println("3 - Delete Student");
        System.out.println("4 - Report (Percentage of M & F Students)");
        System.out.println("5 - Save");
        System.out.println("6 - Quit");

        selection = input.nextInt();
        return selection;    
        }
//End Menu
}
4

1 回答 1

1

编辑:很好@Tom,我只是对应该处理!= 6此案的答案进行了修改。

您需要通过这样的类访问该menu()函数:Enroll

choiceentry = Enroll.menu();

请注意,您menu()Enroll类中唯一的方法是静态的,因此您不需要创建Enroll该类的实例。

这一行:

choiceentry = scanchoice.nextInt();

应该是这样才能使用Scanner参考:

choiceentry = input.nextInt();

还有一件事,您似乎希望用户能够输入多个命令,直到他们选择退出。看看hasAnswered下面代码中标志的使用。

有变化的代码:

import java.util.*;
import java.io.*;

public class Student
{

    public static void main(String[] args)
    {

        int choiceentry;
        Scanner input = new Scanner(System.in);

        choiceentry = Enroll.menu(); //Access through the Enroll class
        if(choiceentry == 6)
        {
             //Exit if user entered 6
             System.exit(0);
        }

          while (true) //I hate to put while(true) in code, but it seems appropriate here
          {
                boolean hasAnswered = false; //use a flag to determine if the user entered a valid command
                if(choiceentry == 1) 
                {
                  hasAnswered = true;
                // ..do something
                }
                else if(choiceentry == 2)
                { 
                  hasAnswered = true;
                //..something else
                }
                else if(choiceentry == 3)
                {
                  hasAnswered = true;
                //...something else
                }
                else if(choiceentry == 4)
                {
                  hasAnswered = true;
                // ..something else
                }
                else if(choiceentry == 5)
                {
                  hasAnswered = true;
                //..something else
                }
                else
                {
                  System.out.println("Enter \"1\", \"2\", \"3\", \"4\", \"5\" or \"6\"");
                  choiceentry = input.nextInt(); //use the Scanner

                  if(choiceentry == 6)
                  {
                     //Exit if user entered 6
                     System.exit(0);
                  }
                }

                if (hasAnswered == true){
                    hasAnswered == false;
                    //user had issued a valid command, prompt for the next command
                    choiceentry = Enroll.menu(); //Access through the Enroll class
                    if(choiceentry == 6)
                    {
                       //Exit if user entered 6
                       System.exit(0);
                     }
                }
        }


    }
}
于 2015-04-08T17:21:22.697 回答