使用开关的密码/用户名

时间:2017-02-09 11:55:06

标签: java switch-statement

代码运行良好,但是当我输入错误的用户名时,它只是终止而没有任何输出。有关此代码的任何提示或建议吗?我知道我可以使用if... else,但我尝试使用switch执行此操作。

package frame.security;
import java.util.Scanner;

public class FrameIntel {
    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);
        String Username;
        System.out.println("Enter Username:" );
        Username=sc.nextLine();
        String Password;
        System.out.println("Enter Password: ");
        Password=sc.nextLine();

        switch(Username) {
        case"Winford Coloma":
            if("TwelveEleven".equals(Password)) {
                System.out.println("Senior Software Engineer");
                System.err.println("Limited Access to Sandbox!(4)");
                break;
            }
            else {
                System.err.println("Access Denied!");
                System.exit(0);
            }
        case"Lynelle Marten":
            if("TwelveSixteen".equals(Password)) {
                System.out.println("Test Administrator");
                System.err.println("Limited Access to Sandbox!(5)");
                break;
            }
            else {
                System.err.println("Access Denied");
                System.exit(0);
            }
        case"Luis Ansley":
            if("TwelveTwenty".equals(Password)) {
                System.out.println("Software Engineer");
                System.err.println("Controlled Access to Sandbox!(Clog)");
                break;
            }
            else {
                System.err.println("Access Denied");
                System.exit(0);
            }
        case"Shantay Dority":
            if("TwelveTwentyFour".equals(Password)) {
                System.out.println("Programmer");
                System.err.println("Implement only(Sandbox)!");
                break;
            }
            else {
                System.err.println("Access Denied");
                System.exit(0);
            }
        case"Tangela Norsworthy":
            if("TwelveTwentySeven".equals(Password)){
                System.out.println("CEO");
                System.err.println("Full access to Sandbox!");
                break;
            }
            else {
                System.err.println("Access Denied");
                System.exit(0);
            } 


        }

    }
}

2 个答案:

答案 0 :(得分:0)

您没有default语句,因此您的代码只能使用case语句中编写的用户名

答案 1 :(得分:0)

您使用切换语句而没有默认大小写。 没有" case"时使用默认情况。点击匹配。

在案例"Tangela Norsworthy"之后添加这些行:

default: {
    System.err.println("Username not recognised");
    System.exit(0);
}

0 in" System.exit();"表示该应用程序退出时没有问题。您应该使用其他值作为指示存在一些问题。 (即System.exit(1) - > 1 =用户名无效,System.exit(2) - > 2 =密码无效)