Java 两个模具模拟器执行if-else-if错误
这是给我的任务。但我似乎不明白我的程序出了什么问题,以及如何着手解决它。它只是不停地滚动骰子,冻结了我的JCreator。我甚至尝试将数值改为10,但它仍然做同样的事情Java 两个模具模拟器执行if-else-if错误,java,random,dice,Java,Random,Dice,这是给我的任务。但我似乎不明白我的程序出了什么问题,以及如何着手解决它。它只是不停地滚动骰子,冻结了我的JCreator。我甚至尝试将数值改为10,但它仍然做同样的事情 我已经声明了所有变量。您需要添加代码来模拟滚动 掷骰子并跟踪双打。将下面的算法转换为Java和 将它放在main方法中变量声明之后,但在输出之前 声明。您将使用几种控制结构:while循环和if-else- 嵌套在另一个if语句中的if语句。使用 算法,以帮助您确定循环中包含哪些内容,循环中包含哪些内容 if语句,以及嵌套的if
我认为你理解的“边做边做”的概念是错误的 只要while括号内的表达式为true,“do{…}”部分(掷骰子的地方)就会执行 将整个“if(die1Value==die2Value)”部分(直到“counter++;”行)移动到do大括号中,它应该运行。
do
do
{
die1Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die1Value);
die2Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die2Value);
}
while (count <= NUMBER);
{
DIE1值=发电机。下一个(6)+1;
System.out.println(“您滚动:+die1Value”);
die2Value=generator.nextInt(6)+1;
System.out.println(“您滚动:+die2Value”);
}
while(count您没有正确使用doop循环。您有一个do循环和while循环,而不是一个do循环。在do循环中,计数永远不会增加,因此循环永远不会结束。do循环在评估是否继续之前执行第一次迭代
import java.util.Random;
public class DiceSimulation
{
public static void main(String[] args)
{
final int NUMBER = 10000;
Random generator = new Random();
int die1Value;
int die2Value;
int count = 0;
int snakeEyes = 0;
int twos = 0;
int threes = 0;
int fours = 0;
int fives = 0;
int sixes = 0;
do{
die1Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die1Value);
die2Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die2Value);
if (die1Value == die2Value)
{
if(die1Value == 1)
{
snakeEyes++;
}
else if (die1Value == 2)
{
twos++;
}
else if (die1Value == 3)
{
threes++;
}
else if (die1Value == 4)
{
fours++;
}
else if (die1Value == 5)
{
fives++;
}
else if (die1Value == 6)
{
sixes++;
}
}
count++;
}while (count < NUMBER);
System.out.println ("You rolled snake eyes " + snakeEyes +
" out of " + count + " rolls.");
System.out.println ("You rolled double twos " + twos +
" out of " + count + " rolls.");
System.out.println ("You rolled double threes " + threes +
" out of " + count + " rolls.");
System.out.println ("You rolled double fours " + fours +
" out of " + count + " rolls.");
System.out.println ("You rolled double fives " + fives +
" out of " + count + " rolls.");
System.out.println ("You rolled double sixes " + sixes +
" out of " + count + " rolls.");
}
}
import java.util.Random;
公共类模拟
{
公共静态void main(字符串[]args)
{
最终整数=10000;
随机生成器=新随机();
int DIE1值;
int值;
整数计数=0;
int snakeEyes=0;
int-twos=0;
int-threes=0;
int-fours=0;
整数五=0;
六位数=0;
做{
DIE1值=发电机。下一个(6)+1;
System.out.println(“您滚动:+die1Value”);
die2Value=generator.nextInt(6)+1;
System.out.println(“您滚动:+die2Value”);
if(die1Value==die2Value)
{
如果(die1Value==1)
{
snakeEyes++;
}
否则如果(die1Value==2)
{
twos++;
}
否则如果(die1Value==3)
{
三S++;
}
否则如果(die1Value==4)
{
fours++;
}
否则如果(die1Value==5)
{
五个++;
}
否则如果(die1Value==6)
{
六++;
}
}
计数++;
}而(计数<数字);
System.out.println(“你滚动蛇眼”+snakeEyes+
“超出”+计数+转鼓数。”);
System.out.println(“你滚了两个两个”+2个+
“超出”+计数+转鼓数。”);
System.out.println(“你掷了双三”+3+
“超出”+计数+转鼓数。”);
System.out.println(“您滚动了双四个”+四个+
“超出”+计数+转鼓数。”);
System.out.println(“你掷了双五”+五+
“超出”+计数+转鼓数。”);
System.out.println(“您滚动了双六”+六+
“超出”+计数+转鼓数。”);
}
}
如果第一个骰子的值与第二个骰子的值相同…增加掷骰子的次数
这是什么,能让它更具可读性吗?我是一名经验丰富的Java程序员,我无法理解代码的逻辑,因为它没有正确缩进。你怎么能?帮你自己一个忙,并缩进它。所有像样的IDE(不知道JCreator是否是其中之一)用一个键盘快捷键就可以了。因为缩进很难判断,但是你从来没有在你的do循环中实际增加计数。你从来没有测试过循环中的任何东西。你只是反复滚动模具。试着将你的while
条件移动到你身体的末端。就在Sys.out.print()的正上方
sIf计数为
import java.util.Random;
public class DiceSimulation
{
public static void main(String[] args)
{
final int NUMBER = 10000;
Random generator = new Random();
int die1Value;
int die2Value;
int count = 0;
int snakeEyes = 0;
int twos = 0;
int threes = 0;
int fours = 0;
int fives = 0;
int sixes = 0;
do{
die1Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die1Value);
die2Value = generator.nextInt(6) + 1;
System.out.println("You rolled: " + die2Value);
if (die1Value == die2Value)
{
if(die1Value == 1)
{
snakeEyes++;
}
else if (die1Value == 2)
{
twos++;
}
else if (die1Value == 3)
{
threes++;
}
else if (die1Value == 4)
{
fours++;
}
else if (die1Value == 5)
{
fives++;
}
else if (die1Value == 6)
{
sixes++;
}
}
count++;
}while (count < NUMBER);
System.out.println ("You rolled snake eyes " + snakeEyes +
" out of " + count + " rolls.");
System.out.println ("You rolled double twos " + twos +
" out of " + count + " rolls.");
System.out.println ("You rolled double threes " + threes +
" out of " + count + " rolls.");
System.out.println ("You rolled double fours " + fours +
" out of " + count + " rolls.");
System.out.println ("You rolled double fives " + fives +
" out of " + count + " rolls.");
System.out.println ("You rolled double sixes " + sixes +
" out of " + count + " rolls.");
}
}