【问题标题】:Java Snake Eyes Program ErrorJava 蛇眼程序错误
【发布时间】:2013-09-12 05:29:41
【问题描述】:

我正在制作一个模拟器,以查看随机数生成器“滚动”蛇眼需要多少次。程序只是重复

Not snake eyes yet :(

代码如下:

import java.util.Random;

public class SnakeEyes {

public static void main(String[] args) {
    Random myRandom = new Random();
    int die1 = 0, tries = 0, die2 = 0;

    System.out.println("Welcome to SEO (Snake Eyes Operator)!");
    System.out.println("How many rolls will it take you to get to snake eyes! ");

    die1 = myRandom.nextInt(6) + 1;
    die2 = myRandom.nextInt(6) + 1;

    while (die1 + die2 != 2) {
        System.out.println("Not snake eyes yet :( ");
        tries = +1;

    }

    System.out.print("You have rolled snake eyes! ");
    System.out.print("Congratulations!  It only took you ");
    System.out.print(tries);
    System.out.print("!");

}

}

我认为这是开环的问题,但我不确定。谢谢!

【问题讨论】:

    标签: java loops random


    【解决方案1】:

    当你使用while循环时,你必须更新你检查的值,否则循环永远不会停止。

    您需要更新循环内的die1die2 值。

    【讨论】:

    • 我已将 die1 = 和 die2 = 添加到 while 循环中(在 while 循环中的 system.outprint.ln 之后复制粘贴)并将尝试次数 = +1 更新为尝试次数 += 1。它仍然给我无限循环。
    • 你可以添加一些打印来自己调试。在循环中打印 die1 和 die2 的值怎么样?
    • 修复了它。谢谢!
    • @TheBoss,谢谢,不需要。请阅读stackoverflow.com/help/someone-answers
    【解决方案2】:

    一旦这个while (die1 + die2 != 2) 条件失败,它将进入无限循环,并且必须有一个条件来打破循环。 试试这个(将在 10 次迭代后中断循环):

    while (die1 + die2 != 2) {      
        System.out.println("Not snake eyes yet :( ");
        die1 = myRandom.nextInt(6) + 1;
        die2 = myRandom.nextInt(6) + 1;
        tries += 1;
        if(tries==10)
            break;
    }
    

    并将tries = +1; 替换为tries += 1;

    【讨论】:

      【解决方案3】:

      您需要在while 循环中分配myRandom.nextInt(6) + 1; inside,否则它将通过一遍又一遍地检查相同的值来进行迭代。

      【讨论】:

        【解决方案4】:
        die1 + die2 
        

        没有改变,因此如果满足以下条件,循环将永远运行:

        while (die1 + die2 != 2)
        

        因此,您可能必须在 while 循环中添加一个逻辑,以在逻辑上更新 die1 和/或 die2 的值。

        【讨论】:

          猜你喜欢
          • 2014-10-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多