如何在Java中返回第一个菜单切换案例?

时间:2017-01-18 11:30:54

标签: java

这是我的代码。我一直坚持使用开关盒的东西。我试着完成我的Java界面(控制台)作业。我们的想法是建立一个登录系统。

我想知道当用户点击LOGOUT / LOG OFF时如何返回第一个LOGIN菜单(主菜单)。

interface Login{
    public void validasi();
    public void cekData();
}

class DataLogin implements Login{
    private String namaUser1="mhs";
    private String pass1="mahasiswa";
    private String namaUser2="mahasiswa";
    private String pass2="pratikum";

    public void setName(String name, String name2){
        this.namaUser1 = name;
        this.namaUser2 = name2;
    }
    public String getName(){
        return namaUser1;
    }
    public String getName2(){
        return namaUser2;
    }
    public void setPsw(String pass, String pas2){
        this.pass1 = pass;
        this.pass2 = pas2;
    }
    public String getPsw(){
        return pass1;
    }
    public String getPsw2(){
        return pass2;
    }

这是我的checkData方法。

    public void cekData(){
        DataLogin u = new DataLogin();
        String Nama, Psw, log, mau;

        Scanner input = new Scanner(System.in);
        Scanner e = new Scanner(System.in);
        System.out.print("Username : "); Nama=input.nextLine();
        System.out.print("Password : "); Psw=input.nextLine();
            if (Nama.equalsIgnoreCase(u.getName())&&Psw.equalsIgnoreCase(u.getPsw())){
                System.out.println("(Login Success!)");
                System.out.println("-----------------");
             do{
                System.out.println("Selamat Datang, "+Nama+"!!");
                System.out.println("MENU PILIHAN");
                System.out.println("A. TEST KENDARAAN");
                System.out.println("B. LOG OFF");
                System.out.println("-----------------");
                System.out.print("Masukkan Pilihan Anda : ");log=input.nextLine();
                    switch(log){
                        case "A": case "a":
                            //SOME CODES.. NOT IMPORTANT
                            break;
                        case "B": case "b":
                            System.exit(0);
                            break;
                        default:
                            System.out.println("ERROR, Pilihan Tidak Tersedia");
                            break;
                    }

                    System.out.print("Mau Coba Lagi? [Y/T] = ");mau = e.next();
                }while(mau.equals("Y")||(mau.equals("y"))); 
            }
            else{
                System.out.println("(Login Gagal!)");
                System.out.println("Periksa Kembali Username dan Password Anda");
                System.out.println("------------------------------------------");
            }

    }
}

这是我的主菜单。

 class TestLogin{
    public static void main(String[] args){
        DataLogin u = new DataLogin();

        Scanner pil = new Scanner(System.in);
        String pilih;

        System.out.println("MAIN MENU");
        System.out.println("----------");
        System.out.println("MENU PILIHAN");
        System.out.println("A. LOGIN");
        System.out.println("B. EXIT");
        System.out.println("----------");

        System.out.print("Masukkan Pilihan Anda : ");pilih=pil.nextLine();
        switch(pilih){
            case "A":
            case "a":
                u.cekData();
                break;
            case "B":
            case "b":
                System.exit(0);
                break;
            default:
            {System.out.print("ERROR");}
        }
    }
}

2 个答案:

答案 0 :(得分:0)

当用户退出时,您可以使用单独的方法移动主菜单并再次调用它。

答案 1 :(得分:0)

我没试过,但这应该有效: -

1)将 main()方法的内容包装成循环。

2)在 cekData()中,如果用户选择Log Out而不是System.exit(),则返回。

在实现上述操作后,如果用户选择Log Out,则线程将返回main()方法,该方法将循环并再次显示。