java - 骰子滚子 Java 返回较少的随机结果

标签 java loops dice

我正在尝试制作一个小程序,抛出“reservaDados”数量的骰子,并将“dado”(1-10 之间的数字)与指定的难度进行比较。然后我想打印退出、失败和 super 失败的次数,但我似乎对循环工作的次数有问题,它只打印 9 个结果,我想我似乎找不到原因它必须与计数器 i 做一些事情?

import java.util.*;

public class ProgramTUI {
    public static void main(String[] args) {
        Scanner var = new Scanner(System.in).useLocale(Locale.ENGLISH);
        System.out.print("Cuantos dados lanzas?");
        int reservaDados = var.nextInt();
        System.out.print("Cual es la dificultad?");
        int dificultad = var.nextInt();
        int i = 0;
        int numero_exitos = 0;
        int numero_fracasos = 0;
        int numero_pifias = 0;
        while (i < reservaDados) {
            i++;
            int dado = (int) (Math.random() * 10) + 1;
            if (reservaDados == i) {
                System.out.println("Has sacado " + numero_exitos + " exitos, " + numero_fracasos
                        + " fracasos, " + numero_pifias + " pifias");
            } else if (dado == 1) {
                numero_pifias++;
            } else if (dado < dificultad) {
                numero_fracasos++;
            } else {
                numero_exitos++;
            }
        }
    }
}

最佳答案

在最后一次迭代中,不再进行计数,仅打印结果。所以你实际上错过了一次迭代。

可以通过删除第一个 else 或进行一次额外的迭代来修复。

但是只需将整个结果打印出循环并将其直接放在循环之后即可。这将使代码的意图更加清晰。

关于java - 骰子滚子 Java 返回较少的随机结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804746/

相关文章:

java - 使用 hibernate 从表中加载数据时出错

java - 收到的 COD 的关联 ID 和正文为空

JavaScript - 检查多个 SELECT 是否有重复选项

java - 如何对 3 个字符串使用循环/条件?

c++ - msvcrt.dll 是否为其 rand() 函数使用线性同余生成器?

javascript - 使用输入投了多少骰子,然后只输出最后一投的两个骰子的总和Javascript

java - 配置 ehCache : Cache is null

java - 确保代理持有消息,直到至少一个消费者得到它

python - 在 Python (Django) 中解析文本

C 代码,随机骰子游戏未给出正确答案需要帮助