【发布时间】:2019-10-19 16:04:48
【问题描述】:
我希望程序仅在收到“y”、“Y”、“N”或“n”时运行。它不适用于其他角色。然而,当用户用 y 或 n 写一个多于 1 个字母的单词时(例如 yddh、ndhdh 等),程序仍然运行。请建议我能做什么。我尝试将 'a' 作为字符串,但在 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");}
}
}
【问题讨论】:
-
检查 y/Y 和 n/N,其余部分使用 else,无需第三次检查。 (如果你的程序说只允许大写 Y/N 但它也允许小写,这会让用户感到困惑)
标签: java if-statement char java.util.scanner