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 + " 次!");
}
}
展开
 我来答
旋风小魔头
推荐于2016-02-13 · TA获得超过114个赞
知道答主
回答量:54
采纳率:0%
帮助的人:66.4万
展开全部
你这个肯定是0啊!
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);
胖蔡杂谈
2014-10-23 · 超过34用户采纳过TA的回答
知道答主
回答量:221
采纳率:0%
帮助的人:75.5万
展开全部
结果是:0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式