Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查无效的用户输入java_Java_Input - Fatal编程技术网

检查无效的用户输入java

检查无效的用户输入java,java,input,Java,Input,因此,在上面的这篇文章中,当用户最初输入3而不是1或2时,会打印错误消息invalid input。当他们输入1时,将跳过此打印 现在,你需要多少张成人票 然后直接进入儿童票 为什么呢 仅仅因为输入是3,并且只有当standerracetickets==1 | | standerracetickets==2时才会执行if语句,所以您需要改善您的条件 这里需要的是嵌套的。到目前为止,您的上一张账单System.out.Print您需要多少张儿童票;对于任何输入,将始终运行 if (standOrT

因此,在上面的这篇文章中,当用户最初输入3而不是1或2时,会打印错误消息invalid input。当他们输入1时,将跳过此打印

现在,你需要多少张成人票

然后直接进入儿童票


为什么呢

仅仅因为输入是3,并且只有当standerracetickets==1 | | standerracetickets==2时才会执行if语句,所以您需要改善您的条件

这里需要的是嵌套的。到目前为止,您的上一张账单System.out.Print您需要多少张儿童票;对于任何输入,将始终运行

if (standOrTerraceTickets != 1 && standOrTerraceTickets != 2) {
    System.out.print("Invalid input. Please enter 1 for stand tickets or 2 for terrace tickets. ");
}
if (standOrTerraceTickets == 1 || standOrTerraceTickets == 2) {
    System.out.print("Now, how many adult tickets do you require? ");
}
int adultTickets = aScanner.nextInt();
System.out.print("How many children's tickets do you require? ");

请使用以下开关盒构造

int adultTickets = 0;
if (standOrTerraceTickets != 1 && standOrTerraceTickets != 2) {
    System.out.print("Invalid input. Please enter 1 for stand tickets or 2 for terrace tickets. ");
}
else if (standOrTerraceTickets == 1 || standOrTerraceTickets == 2) {
    System.out.print("Now, how many adult tickets do you require? ");
    adultTickets = aScanner.nextInt();
    System.out.print("How many children's tickets do you require? ");
}

如果输入为3,则显示错误消息-当输入不正确时,应显示错误消息。如果输入为1或2,则两个有效输入均不显示错误消息,并输入成人票号。然后将显示子票据提示

switch(standOrTerraceTickets) 
{
    case 1:
    case 2:
        System.out.print("Now, how many adult tickets do you require? ");
        break;
    default:
        System.out.print("Invalid input. Please enter 1 for stand tickets or 2 for terrace tickets. ");
        break;
}

你必须在一个循环中调用它,直到用户输入正确的输入。你需要在打印无效输入后扫描响应…是的,你需要一个循环,我认为后一部分应该进入第二个if块。第二个if块可以是if的else块,它可以提高性能。因为您是这里的新用户,让我告诉您,如果您得到问题的解决方案,您应该在这里接受答案。这有助于其他人了解什么对你有用。要接受答案,您只需单击要选择的答案左侧的右勾号。
while (standOrTerraceTickets != 1 && standOrTerraceTickets != 2)
{
   System.out.print("Invalid input. Please enter 1 for stand tickets or 2 for terrace tickets. ");
   standOrTerraceTickets = aScanner.nextInt();
}
System.out.print("Now, how many adult tickets do you require? ");
int adultTickets = aScanner.nextInt();
System.out.print("How many children's tickets do you require? ");