我需要帮助修复直方图

时间:2018-02-05 03:07:28

标签: java arrays histogram

我正在尝试创建一个生成随机数的数组,并保存每个数字的滚动次数。然后我试图创建结果的直方图,但控制台变为空白。我想不出巧妙地使用循环的方法所以我不得不使用一个非常粗糙的解决方案。

import java.util.Random;
import java.util.Arrays;

public class DiceRolls {
    public static void main(String[] args){
        int[] diceRolls = new int [9];

        Random rand = new Random();

        for(int numberOfRolls = 0; numberOfRolls <= 20; numberOfRolls++){
            int individualRolls = rand.nextInt(9);
            diceRolls[individualRolls] ++;
        }
        for(int y = 0; y >= diceRolls[0]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[1]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[2]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[3]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[4]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[5]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[6]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[7]; y++){
            System.out.print("*");
        }

        System.out.println("         ");
        for(int y = 0; y >= diceRolls[8]; y++){
            System.out.print("*");
        }
    }
}

2 个答案:

答案 0 :(得分:1)

public static void main(String[] args){

    int[] diceRolls = new int [9];

    Random rand = new Random();

    for(int numberOfRolls = 0; numberOfRolls <= 20; numberOfRolls++){
        int individualRolls = rand.nextInt(9);
        diceRolls[individualRolls] ++;
        }
    for(int j : diceRolls) {
        for(int i = 0; i<j; i++) {
            System.out.print("*");
        }
    System.out.println();
    }
    }

有问题吗?

答案 1 :(得分:0)

你颠倒了循环条件。他们应该是:

y < diceRolls[?]