gpt4 book ai didi

java - Math.random if语句错误

转载 作者:行者123 更新时间:2023-11-29 03:16:24 25 4
gpt4 key购买 nike

    int Comproll1= (int) (Math.random()*6+1);
int Comproll2= (int) (Math.random()*6+1);
while (m==1)
{
{
if (Comproll1==1 || Comproll2==1)
{
System.out.println("One of the computer's dice rolls was a 1, it lost all the points for the round & it is now your turn!");
cr= cr-cr;
m++;
}
else if (Comproll1==1 && Comproll2==1)
{
System.out.println("The Computer rolled 2 1's, their total number of points is now 0 & it is now your turn!");
cp=cp-cp;
m++;
}
else
{
cr= Comproll1+Comproll2;
cp= cp+cr;
}
}

大家好!以上是我的代码——出于某种原因,不管怎样,它总是会显示第一个选项,即“计算机的一个骰子掷出 1,它失去了该轮的所有分数……”。即使我改变语句的顺序,它仍然会这样做。有人可以向我解释为什么会这样吗?谢谢!

最佳答案

据我所知,因为你没有重新滚动

int Comproll1= (int) (Math.random()*6+1);
int Comproll2= (int) (Math.random()*6+1);
while (m==1)
{

应该是

while (m==1)
{
int Comproll1= (int) (Math.random()*6+1);
int Comproll2= (int) (Math.random()*6+1);

此外,Java 命名约定是变量的驼峰式命名(并且以小写字母开头)。因此,Comproll1 可能是 compRoll1。最后,我个人更喜欢Random.nextInt()对于 6 面骰子,可能看起来像

Random rand = new Random();
while (m==1)
{
int compRoll1 = rand.nextInt(6) + 1;
int compRoll2 = rand.nextInt(6) + 1;

编辑 实际上,您还需要颠倒测试的顺序。因为如果其中一个为真,则永远不可能进入对两者都为真的测试。

if (Comproll1==1 || Comproll2==1) {
// Here.
}else if (Comproll1==1 && Comproll2==1) {
// Will never enter here.
}

将顺序切换为,

if (Comproll1==1 && Comproll2==1) {
// Both.
}else if (Comproll1==1 || Comproll2==1) {
// Either.
}

关于java - Math.random if语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com