首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在试着同时掷三个骰子直到它们落在数字6上。

我在试着同时掷三个骰子直到它们落在数字6上。
EN

Stack Overflow用户
提问于 2017-10-09 08:23:00
回答 4查看 77关注 0票数 1

我的程序应该在三个骰子都掷出六个骰子之前打印出掷骰子的数量。

这就是我到目前为止所得到的,但我得到的输出是像1这样的小数字,我不认为需要1个时间来滚动所有的3个6。我期待更大的数字。

代码语言:javascript
复制
Random rand = new Random();
    int numOfRolls = 0; //starts at zero for the number of rolls
    int x;
    int y;
    int z;
    do {
      numOfRolls++;
      x = rand.nextInt(6) + 1;
      y = rand.nextInt(6) + 1;
      z = rand.nextInt(6) + 1;
    } while (x == 6 || y == 6 || z == 6);
    System.out.println(numOfRolls);
EN

回答 4

Stack Overflow用户

发布于 2017-10-09 08:30:45

while条件更改为:

代码语言:javascript
复制
while (x !=6 || y != 6 || z != 6)

这将导致循环继续,直到所有三个值都为6。

票数 2
EN

Stack Overflow用户

发布于 2017-10-09 08:27:15

使用or's将告诉您三个整数中的一个落在6上之前的滚动数。此外,您还希望程序在落在三个6上时停止,因此将==切换为!=。

代码语言:javascript
复制
x != 6 && y != 6 && z != 6
票数 1
EN

Stack Overflow用户

发布于 2017-10-09 08:30:19

逻辑条件需要满足:

while(x != 6 || y != 6 || z != 6)

因为您需要重复循环,直到所有三个循环都不是6

示例:

代码语言:javascript
复制
Random rand = new Random();
int numOfRolls = 0; //starts at zero for the number of rolls
int x;
int y;
int z;
do {
  numOfRolls++;
  x = rand.nextInt(6) + 1;
  y = rand.nextInt(6) + 1;
  z = rand.nextInt(6) + 1;
} while (x != 6 || y != 6 || z != 6);
System.out.println(numOfRolls);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46637335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档