在条件下使用扫描仪检索将显示消息的书面数字 (Java)

Use the scanner in a condition to retrieve a written number that will display a message (Java)

为了实践,我为自己创建了一个小项目: 目标是写出精确的东西:并获得一个消息显示,它允许“访问不同的东西”但是我阻止了一个条件来恢复控制台中写入的数字,通过扫描仪并知道它是否 = 哪个数字我在我的int中声明,以便能够显示这样或那样的消息

我创建了 3 个整数:

    int one = 1;
    int two = 2;
    int three = 3;

我要有条件的款式:

    if(scanner.nextInt() == 1 && one == 1) {
        System.out.println( You have access to the Administrator panel);
    }

检索发送到控制台(Eclipse 控制台)的消息 -> 输入的数字:如果我写 1 :然后我显示一条消息,如果我写 2 另一条消息,而 3 又一条消息。

经过多次尝试,我仍然无法成功,尽管我使用扫描仪,但我意识到这是非常基本的事情,我请求您的帮助,以便能够理解我的错误我现在已经阻塞了几个小时我必须承认我已经用尽了很多“解决方案”。

我的完整代码:

public static void main(String[] args) {

    // Strictement inférieur à :  <=
    // Strictement supérieur à : >= 
    // Pas égal à : !=
    
    try( Scanner scanner = new Scanner (System.in)) {
        System.out.printf("Veuillez saisir votre login : ");
        String login = scanner.nextLine(); 

        System.out.println("   ");
        
        System.out.printf("Veuillez saisir votre mot de passe : ");
        String password = scanner.nextLine();
        
        System.out.println("   ");

        System.out.println("---| Vous êtes désormais connecté au panel |---");
        System.out.println("    ");
        
        System.out.println("1 - Accès Administrateur");
        System.out.println("2 - Accès Modérateur");
        System.out.println("3 - Accès Joueur");
        
        System.out.println("    ");

        int one = 1;
        int two = scanner.nextInt(2);
        int three = scanner.nextInt(3);
        
        if(scanner.nextInt() == 1 && one == 1) {
            System.out.println("Vous avez accès au panel Administrateur");
        }

我认为您想要的可以干净地实现为 switch

    Scanner scan = new Scanner (System.in);
    int input = scan.nextInt ();
    
    switch (input) {
    case 1:
        // do admin
        break;
    case 2:
        // do Modérateur
        break;
    case 3:
        // etc
        break;
    default:
        System.out.println("inalid choice");
    }

你可以试试switch语句。我不知道您设置和检查的总体目标,但您可以在不为 int 创建变量的情况下进行简化。

switch (scanner.nextInt()) {
    case 1:
        //logic
        break;
    case 2:
        //logic
        break;
    case 3:
        //logic
        break;
    default:
        //logic
        break;
}

转到 here 了解有关 Switch 语句的更多信息。