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

时间:2016-11-25 12:08:34

标签: java loops dice

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

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++;
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

在最后一次迭代中,不再进行计数,只打印结果。所以你有效地错过了一次迭代。

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

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

答案 1 :(得分:0)

Thilo是对的,在循环的最后一次传递中,它不计算骰子,因为它首先是打印,我只是删除了打印,然后像这样粘贴在最后:

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 (dado == 1) {numero_pifias++;}
  else if (dado < dificultad) {numero_fracasos++;}
  else {numero_exitos++;}  

  if (reservaDados == i){System.out.println("Has sacado "+numero_exitos+" exitos, "+numero_fracasos+" fracasos, "+numero_pifias+" pifias");}
}

} }

这是固定的,谢谢!