System.out.println("Enter number of dice to throw, an integer [2, 10]: ");
Scanner keyboard = new Scanner (System.in);
n = keyboard.nextInt();
//if the input is valid
if (n>1 && n<11)
{`
System.out.println("good");
Random rn = new Random();
int random = rn.nextInt((6-1) +1) +1;
System.out.println("random number is " + random);
}
else
{
//if the users input is invalid
while (n<2 && n>10)
{
System.out.println("error, must be in [2,10] ");
n = keyboard.nextInt();
}
}
答案 0 :(得分:5)
你的逻辑错误。数字n
不能超过2
且大于10
。您希望小于2
或大于10
。使用||
代替&&
。
while (n<2 || n>10)
答案 1 :(得分:0)
如果条件在&#34; if&#34;如果声明不符合,则默认情况下该程序不会转到“其他”状态。声明?所以你甚至需要while语句吗?
答案 2 :(得分:0)
实际上它确实输入'else'而不是'while'。因为n不能&lt; 2 AND&gt; 10同时。
替换
while (n<2 && n>10)
用
while (n<2 || n>10)