这是我目前使用 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
}
变量num1
和num2
在开始时初始化