繁体   English   中英

我在用Java创建交互式菜单时遇到了麻烦

[英]I'm having trouble with creating a interactive menu in Java

我们的任务是这个https://docs.google.com/document/d/16hHb8WUGehbYLCNrSpJspP8x5GJNCR2q2chnG_yFPSo/pub

并且它使用的文件写在这里https://docs.google.com/document/d/1BxIKe4ZEEpWHmBk2O2FJit6frk5BZSm6SozHOAKWqWU/pub

我并不是想利用这个网站来让人们为我做我的项目,因为我真的迷路了,所以我会指出正确的方向。

我在switch语句上遇到了麻烦,并使菜单开始工作。

package student;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.lang.*;
import java.util.*;


public class TestStudent {

    public static void main (String[] args) throws IOException
    {

        InputStreamReader isr = new InputStreamReader (System.in );
        BufferedReader stdin = new BufferedReader( isr );


        String check, tempString, tempString2;
        int tempInt, tempInt2;
        boolean quit = false;

        do
        {
            System.out.println("A - Add student, D - Delete student, F - Find student, H - Help, S - Scores, X - Exit");
            check = stdin.readLine();
            switch (check)
            {

                case "A":
                case "a":
                    System.out.println("Enter the student's name");
                    tempString = stdin.readLine();
                    System.out.println("Enter the student's ID number");

                //I'm stuck on where to go from here

                case "D":
                case "d":
                    System.out.println("Enter the ID number of the student you wish to delete");
                    tempString = stdin.readLine();
                    System.out.println("Student has been deleted");

                case "F":
                case "f":
                    System.out.println("Enter the Name or ID number of the student you would like to find");
                    tempString = stdin.readLine();
                    System.out.println("");

                case "H":
                case "h":
                    System.out.println("");

                case "S":
                case "s":
                    System.out.println("Enter the Name or ID number of the Student");

                case "X":
                case "x":
                    System.out.println("System shutting down");
            }

       }    //Error saying while is expected     
   }   //Error "Illegal start of an expression
}

您正在做的事情中错过了。

do {
  ...
}while(condition)

所以我相信你想要这样的东西:

do {
  ...
  //your whole switch statement
  ...
}while(!quit) //exit when quit is true, stay if quit is not true.

每个案例都应有自己的休息时间,否则,如果转到案例A,它将转到案例D,依此类推。

        case "A":
        case "a":
            System.out.println("Enter the student's name");
            tempString = stdin.readLine();
            System.out.println("Enter the student's ID number");
            break; //add this to every case if you don't want to execute next case.

为了简化一点,您的切换..如果使用check = stdin.readLine().toLowerCase();

您可以避免1种情况使用2种情况:

大小写“ a”并删除大小写“ A”(大写字母的大小写可能会被删除)

最后,如果不重置quit值,您的那一刻将永远不会结束

也许您可以为其添加另一种情况,例如:

case "q":
    quit=true;
    break;

如果不存在任何情况,则还会执行一个默认情况。

Java中的Do-while循环。 此链接将帮助您解决一些问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM