java 掷骰子的一个程序就改正
程序如下,可以编译,运行出来a还是0,求各位大神解答。publicclassZhishaizi{publicstaticvoidmain(String[]args){in...
程序如下,可以编译,运行出来a还是0,求各位大神解答。
public class Zhishaizi{
public static void main(String[] args){
int a = 0;
for(int i = 0; i < 10000; ){
int number1 = (int)Math.random() * 6 + 1;
int number2 = (int)Math.random() * 6 + 1;
i++;
if(number1 + number2 == 2 || number1 + number2 == 3 || number1 + number2 == 12)
break;
else if(number1 + number2 == 7 || number1 + number2 == 11)
a++;
else{
int point = number1 + number2;
do{
number1 = (int)Math.random() * 6 + 1;
number2 = (int)Math.random() * 6 + 1;
i++;
}while(number1 + number2 != 7 || number1 + number2 != point);
if(number1 + number2 == 7)
break;
else
a++;
}
}
System.out.println("在赢取双骰子游戏中,掷10000次骰子,将会赢 " + a + " 次!");
}
} 展开
public class Zhishaizi{
public static void main(String[] args){
int a = 0;
for(int i = 0; i < 10000; ){
int number1 = (int)Math.random() * 6 + 1;
int number2 = (int)Math.random() * 6 + 1;
i++;
if(number1 + number2 == 2 || number1 + number2 == 3 || number1 + number2 == 12)
break;
else if(number1 + number2 == 7 || number1 + number2 == 11)
a++;
else{
int point = number1 + number2;
do{
number1 = (int)Math.random() * 6 + 1;
number2 = (int)Math.random() * 6 + 1;
i++;
}while(number1 + number2 != 7 || number1 + number2 != point);
if(number1 + number2 == 7)
break;
else
a++;
}
}
System.out.println("在赢取双骰子游戏中,掷10000次骰子,将会赢 " + a + " 次!");
}
} 展开
2个回答
展开全部
你这个肯定是0啊!
nt number1 = (int)Math.random() * 6 + 1;
这个结果就是恒等于1啊。 (int)Math.random() 这个结果就是恒等于0
可以改成这样试试: (int)(Math.random() * 6 ) 应该就可以了
nt number1 = (int)Math.random() * 6 + 1;
这个结果就是恒等于1啊。 (int)Math.random() 这个结果就是恒等于0
可以改成这样试试: (int)(Math.random() * 6 ) 应该就可以了
更多追问追答
追问
改成int number1 = (int)(Math.random() * 6 + 1);
int number2 = (int)(Math.random() * 6 + 1);
下面也改了。
改了之后可以运行,但是变成死循环了。
求解
追答
是要改成int number1 = (int)(Math.random() * 6) + 1; 这样
不是这样:int number1 = (int)(Math.random() * 6 + 1);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询