Java作业: Print Arrays with stored random numbers in it

标签 java arrays random numbers

我需要一些帮助来完成类作业。我不想得到解决方案,而是想了解如何解决这个问题,因为即使它很简单,我也真的不明白。

我需要编写一个包含 10 个元素(全部为整数)的数组的程序。每个元素都会设置一个随机生成的数字,每个数字都在 0-20 之间。接下来,我必须打印数组元素的位置、随机数和与数组值一样多的星号。

它看起来像这样:

Array Value Asterisks
0     5     *****
1     15    ***************

我可以生成数字并将它们存储到数组中,但我无法根据描述打印它们。你能告诉我我做错了什么吗?

public class ForTest{
    public static void main(String[] args) {
        //Method 1
        int[] myNumbers = {0,1,2,3,4,5,6,7,8,9};
        //Method 2
        int[] randomNumbers = new int[10];
        String asterisk = "";

        for( int index=0; index < randomNumbers.length; index++)
        {
            randomNumbers[index] = 1 + (int) ( Math.random() *20);
        } // end for

        for ( int index=0; index < randomNumbers.length; index++)
        {
            switch (randomNumbers[index]) {
                case 1:
                asterisk = "*";
                System.out.println(myNumbers[0] + "\t-->\t" + randomNumbers + asterisk);
                break;
                case 2:
                asterisk = "**";
                System.out.println(myNumbers[1] + "\t-->\t" + randomNumbers + asterisk);
                break;
                case 3:
                asterisk = "***";
                System.out.println(myNumbers[2] + "\t-->\t" + randomNumbers + asterisk);
                break;
                case 4:
                asterisk = "****";
                System.out.println(myNumbers[3] + "\t-->\t" + randomNumbers + asterisk);
                break;
            }
        }
    }
}

最佳答案

1) 让我们从解决作业所需的最少代码开始: 这是一个包含 10 个随机数的数组。我只是复制了你已有的

   public static void main(String [] args) {        
        int[] randomNumbers = new int[10];

        for( int index=0; index < randomNumbers.length; index++){
            randomNumbers[index] = 1 + (int) ( Math.random() *20);
        }            
    }

您不需要名为 myNumbers 的第二个数组;您可以改用 randomNumbers 数组的索引

2) 现在让我们进行下一步并尝试打印索引。

public static void main(String [] args) {        
    int[] randomNumbers = new int[10];

    for( int index=0; index < randomNumbers.length; index++){
        randomNumbers[index] = 1 + (int) ( Math.random() *20);
    }

    for ( int index=0; index < randomNumbers.length; index++){
        System.out.println(index);                
    }
}

这将输出

0
1
2
...

3)如果你现在将指定索引处的元素添加到打印语句中,你就完成了一半

public static void main(String [] args) {        
    int[] randomNumbers = new int[10];

    for( int index=0; index < randomNumbers.length; index++){
        randomNumbers[index] = 1 + (int) ( Math.random() *20);
    }

    for ( int index=0; index < randomNumbers.length; index++){
        System.out.println(index + "\t" + randomNumbers[index]);                
    }
}

输出

0   4
1   8
2   7
....

4) 我想您已经知道 System.out.println()System.out.print() 之间的区别。如果不是谷歌是你的 friend 。要打印星号,您可以在最后一个循环中添加另一个 for 循环而不是 switch block

public static void main(String [] args) {        
        int[] randomNumbers = new int[10];

        for( int index=0; index < randomNumbers.length; index++){
            randomNumbers[index] = 1 + (int) ( Math.random() *20);
        }

        for ( int index=0; index < randomNumbers.length; index++){
            System.out.println(index +"\t"+randomNumbers[index]+"\t");
            for ( int x=1; x <= randomNumbers[index]; x++){                
                System.out.print("*");
            }
        }
    }

这将产生

0   4   
****1   11  
***********2    15  
***************3    8
...

5) 不完全是您需要的,但非常接近。 println() 在打印到新行后跳转,而 print() 停留在同一行。要解决此问题,请使用 print() 打印包含随机数和星号的行,并在内部 for 循环之后跳转到带有空 println() 的新行

public static void main(String [] args) {        
        int[] randomNumbers = new int[10];

        for( int index=0; index < randomNumbers.length; index++){
            randomNumbers[index] = 1 + (int) ( Math.random() *20);
        }

        for ( int index=0; index < randomNumbers.length; index++){
            System.out.print(index +"\t"+randomNumbers[index]+"\t");
            for ( int x=1; x <= randomNumbers[index]; x++){                
                System.out.print("*");
            }
            System.out.println();
        }
    }

关于Java作业: Print Arrays with stored random numbers in it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43678127/

相关文章:

java - log4j2 扩展 Logger 类

arrays - VB - 附加到数组?

python - 以随机顺序创建一个包含相同数量的 0 和 1 的数组?

java.lang.stackOverflow错误android

java - 这个java泛型方法语法有什么问题

java - 告诉 Java 使用 Windows keystore

php - mysql获取数组

java - 如何删除三重线

jquery - 使用 jquery 随机淡入和淡出

java - Spring 业务对象建模