Java 两个模具模拟器执行if-else-if错误

Java 两个模具模拟器执行if-else-if错误,java,random,dice,Java,Random,Dice,这是给我的任务。但我似乎不明白我的程序出了什么问题,以及如何着手解决它。它只是不停地滚动骰子,冻结了我的JCreator。我甚至尝试将数值改为10,但它仍然做同样的事情 我已经声明了所有变量。您需要添加代码来模拟滚动 掷骰子并跟踪双打。将下面的算法转换为Java和 将它放在main方法中变量声明之后,但在输出之前 声明。您将使用几种控制结构:while循环和if-else- 嵌套在另一个if语句中的if语句。使用 算法,以帮助您确定循环中包含哪些内容,循环中包含哪些内容 if语句,以及嵌套的if

这是给我的任务。但我似乎不明白我的程序出了什么问题,以及如何着手解决它。它只是不停地滚动骰子,冻结了我的JCreator。我甚至尝试将数值改为10,但它仍然做同样的事情

  • 我已经声明了所有变量。您需要添加代码来模拟滚动 掷骰子并跟踪双打。将下面的算法转换为Java和 将它放在main方法中变量声明之后,但在输出之前 声明。您将使用几种控制结构:while循环和if-else- 嵌套在另一个if语句中的if语句。使用 算法,以帮助您确定循环中包含哪些内容,循环中包含哪些内容 if语句,以及嵌套的if-else-if语句中包含的内容
  • 要“滚动”骰子,请使用随机数生成器的nextInt方法 生成一个从1到6的整数
    我认为你理解的“边做边做”的概念是错误的

    只要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.");
        }
    }