1

我的验证一直有问题,这让我感到压力很大,我已经用不同的循环以各种方式完成了它,我现在拥有的就是这个,如果我取出 IF 语句 if 会运行良好对于数字,但由于我的程序只能接受从 1 到 5 的数字,我想采取额外的步骤来验证数字然后返回它。我尝试在循环中声明 int 选项,但不执行 return 语句。

    public int makeOption(){
    int option;
    System.out.println("Choose from the following options: ");
    System.out.println("(1)Create entry || (2)Remove entry || (3)List entry || (4)List All || (5)Exit ");

    while(!reader.hasNextInt()){
            System.out.println("Choose a valid option.");
            reader.next();
    }
    if(reader.nextInt()<1 || reader.nextInt()>5){
        System.out.println("Choose a valid number from options.");
        reader.next();
    }
    option = reader.nextInt();
    System.out.println("You choosed: " + option);
    return option;
}
4

1 回答 1

-1

将您的 if 语句换成 switch 语句:

int input = reader.nextInt();

switch(input)
{
    case 1: // Do something 
          break;
    // blah blah blah more cases.

    default: System.out.println("Please enter a correct value.");
}

关于您的代码的注释

当您调用时reader.nextInt(),您是在告诉流期待另一个int. 您没有查看相同的值。在使用它之前,您应该将它存储在一个变量中。

于 2013-05-09T19:55:13.327 回答