java直方图问题的麻烦

java直方图问题的麻烦,java,Java,问题是: 设计并实现一个应用程序,创建一个直方图,允许您 目视检查一组值的频率分布。程序应该读入 任意数量的整数,范围为1到100(含1到100);然后产生一个 与下面的图表类似的图表表明有多少输入值落在范围1内 到10,11到20,等等。为输入的每个值打印一个星号 1 - 10 | ***** 11 - 20 | ** 21 - 30 | ******************* 31 - 40 | 41 - 50 | *** 51 - 60 | ******** 61 - 70 | ** 71

问题是:

设计并实现一个应用程序,创建一个直方图,允许您 目视检查一组值的频率分布。程序应该读入 任意数量的整数,范围为1到100(含1到100);然后产生一个 与下面的图表类似的图表表明有多少输入值落在范围1内 到10,11到20,等等。为输入的每个值打印一个星号

1 - 10 | *****
11 - 20 | **
21 - 30 | *******************
31 - 40 |
41 - 50 | ***
51 - 60 | ********
61 - 70 | **
71 - 80 | *****
81 - 90 | *******
91 - 100 | *********
源代码:

import java.io.*;
import java.util.Scanner;
public class histogram
{


    public static void main(java.lang.String[] args)
    throws IOException
    {
        Scanner scan = new Scanner (System.in);
        final int min = 1;
        final int max = 10;
        final int limit = 10;
        int[] a = new int[max];

        for (int b = 0; b < a.length; b++)
        {
            a[b] = 0;
        }

        System.out.println("Enter Number between 1 and 100: \n (Or press 0 to stop)");
        int number = scan.nextInt();

        while (number >= min && number <= (limit*max) && number != 0)
        {
            a[(number-1)/limit] = a[(number - 1 ) / limit] + 1;
            System.out.print("Please enter a value:");
            number = scan.nextInt();
        }

        System.out.println("\n__Histogram__");
        for (int y = 0; y < a.length; y++)
        {
            System.out.print("   " + (y * limit + 1) + " - " + (y + 1) * limit + "\t");
            return;
        }


        for (int z = 0; z < a[b]; z++)
        {
            System.out.print("*");
        }
        System.out.println(0);
    }
}
import java.io.*;
导入java.util.Scanner;
公共类直方图
{
公共静态void main(java.lang.String[]args)
抛出IOException
{
扫描仪扫描=新扫描仪(System.in);
最终int最小值=1;
最终int最大值=10;
最终整数限值=10;
int[]a=新的int[max];
for(int b=0;b虽然(number>=min&&number因为b在前面的循环中是数组索引,我认为您需要将最后一个循环放在循环中,以便像开始时那样通过数组索引递增

将b更改为y,并将循环的z移动到循环的y中

for (int y = 0; y < a.length; y++)
{
    System.out.print("   " + (y * limit + 1) + " - " + (y + 1) * limit + "\t");
    for (int z = 0; z < a[y]; z++)
    {
        System.out.print("*");
    }
    System.out.println();
}
for(int y=0;y
b
不再在上下文中,它只在循环的第一个
中有上下文
有办法解决这个问题吗?我卡住了