Java: если пользовательский тест 'y' || 'Y' начинается, 'n' || 'N' тест заканчивается. Для остальных он показывает недействительным. Я хочу показать недействительным, когда пользовательское слово типа начинается с y или n - PullRequest
0 голосов
/ 19 октября 2019

Я хочу, чтобы программа запускалась, только если она получает 'y', 'Y', 'N' или 'n'. Это не работает для других персонажей. Однако, когда пользователь пишет более 1 буквенное слово с помощью y или n (например, yddh, ndhdh и т. Д.), Программа все равно запускается. Пожалуйста, предложите, что я могу сделать. Я попытался взять 'a' в качестве String, но в операторе if-else он показал ошибку, потому что строку нельзя сравнить с char с оператором ==.

   import java.util.Scanner;
   class Main {
   static char a;


   public static void main(String[] args) {
   System.out.println("Do you want to play this quiz?");
   System.out.println("Type 'Y'for Yes or 'N' for no. It's case Insensitive.");
   Scanner sc=new Scanner(System.in);
   a=sc.next().trim().charAt(0);

   if (a=='n'||a=='N')
   {System.out.println("Thanks for downloading!");
    System.exit(0);}

   else if ((a !='n'&&a !='N') && (a !='y'&& a !='Y'))
   {System.out.println("Invalid Syntax");
   System.exit(0);}


   else if(a=='y'||a=='Y')
   {System.out.println("Welcome to the quiz");}
    }
   }

1 Ответ

2 голосов
/ 19 октября 2019

В дополнение к ответу Субраманиана Мариаппана и Яшама вы можете сократить код, используя метод equalsIgnoreCase() следующим образом:

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        System.out.println("Do you want to play this quiz?");
        System.out.println("Type 'Y'for Yes or 'N' for no. It's case Insensitive.");
        Scanner sc = new Scanner(System.in);
        String userInput = sc.next();

        if (userInput.equalsIgnoreCase("N")) {
            System.out.println("Thanks for downloading!");
            System.exit(0);
        } else if (userInput.equalsIgnoreCase("Y")) {
            System.out.println("Welcome to the quiz");     
        } else  {
            System.out.println("Invalid Syntax");
            System.exit(0);
        }
    }
}
...