nickkbmod
nickkbmod

Reputation: 21

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

Our assignment is this https://docs.google.com/document/d/16hHb8WUGehbYLCNrSpJspP8x5GJNCR2q2chnG_yFPSo/pub

and it uses a file which is written here https://docs.google.com/document/d/1BxIKe4ZEEpWHmBk2O2FJit6frk5BZSm6SozHOAKWqWU/pub

I am not trying to use this site to have people do my project for me, I would to be pointed in the right direction since I am truly lost.

I am having a bit of trouble with my switch statement and getting the menu to start working.

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
}

Upvotes: 2

Views: 2287

Answers (2)

porfiriopartida
porfiriopartida

Reputation: 1556

You are missing the while in the do.

do {
  ...
}while(condition)

So I believe you want something like:

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

Every case should have its own break, otherwise if you go to case A, it will go then to case D and so on.

        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.

To simplify a bit your switch.. if you use check = stdin.readLine().toLowerCase();

you can avoid using 2 cases for 1 case:

case "a" and remove case "A" (cases of Capital letter may be removed)

Finally your while will never end if you don't reset the quit value

Maybe you can add another case for it like:

case "q":
    quit=true;
    break;

There is also a default case that is executed if none of the cases are.

Upvotes: 1

nhgrif
nhgrif

Reputation: 62062

Do-while loops in Java. This link will help with some of your problems.

Upvotes: 0

Related Questions