修改当前代码以拒绝用户输入(如果> 21)



这是我目前使用 NetBeans 所拥有的。

System.out.println("Welcome to BlackJack 21!");
Scanner data = new Scanner(System.in);
int num1, num2;
// Read 1st number
System.out.println("Enter 1st number");
num1 = data.nextInt();
// Read 2nd number
System.out.println("Enter 2nd number");
num2 = data.nextInt();
// Find largest number
if (num1 > num2)
    System.out.println("The largest number:" + num1);
else
    System.out.println("The largest number:" + num2);
我需要

帮助的是:我需要找出一种方法,不允许用户输入大于 21 的数字。这个想法是,这将是一个二十一点程序,因此用户输入的数字不能超过21。

谢谢!!

如果用户输入的数字大于 21,您只需继续接受输入。您可以使用循环轻松完成。

以下是代码片段:

public static void main (String[] args)
{
    System.out.println("Welcome to BlackJack 21!");
    Scanner data= new Scanner(System.in);
    int num1 = 22, num2 = 22;
    // Read 1st number
    while(data.hasNext() && num1 > 21) {
        System.out.println("Enter 1st number");
        num1 = data.nextInt();
    }
    // Read 2nd number
    while(data.hasNext() && num2 > 21) {
        System.out.println("Enter 2nd number");
        num2 = data.nextInt();
    }
    // Find largest number
    if(num1 > num2) {
        System.out.println("The largest number:" + num1);
    } else {
        System.out.println("The largest number:" + num2); 
    }
}

你可以做这样的事情:

// Read 1st number
do {
    System.out.println("Enter 1st number");
    num1 = data.nextInt();
    if (num1>21) System.out.println("Number must not be greater then 21");
} while (num1>21);

您将继续循环,直到用户输入有效输入。不确定您是否知道 do/while 的工作原理,但本质上它会运行 do 部分中的代码,然后在之后的while中评估条件。在我们的例子中,条件是检查数字是否大于 21。如果满足条件,它将重复do部分中的内容,否则将继续执行其余代码。通过几个输入亲自尝试一下。 用户仍然可以输入负数,因此您还必须为此添加检查。

您需要一个系统,如果用户输入无效值,则允许用户再次输入数字。

您可以使用 do-while 循环来执行此操作:

int num = 0;
do {
    num = scanner.nextInt();
} while(num > 21 || num < 1);
if(num1 > 21 || num2 > 21) {
    //your code
}

如果你像这样放代码,请离开你的评论

System.out.println("Welcome to BlackJack 21!");
Scanner data= new Scanner(System.in);
int num1 = 0, num2 = 0;
// Read 1st number
System.out.println("Enter 1st number");
num1=data.nextInt();
// Read 2nd number
System.out.println("Enter 2nd number");
num2=data.nextInt();
// Find largest number
if(num1>num2) {
    System.out.println("The largest number:"+num1);
} else {
    System.out.println("The largest number:"+num2); 
}
// If a number is too large
if(num1 > 21 || num2 > 21) {
    // Your Code
}

变量num1num2在开始时初始化

相关内容

  • 没有找到相关文章

最新更新