【发布时间】:2025-12-21 03:40:06
【问题描述】:
我需要一些帮助来完成课堂作业。我不想得到解决方案,而是想了解我如何解决这个问题,因为即使它很简单,我也真的不明白。
我需要编写一个包含 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;
}
}
}
}
【问题讨论】:
-
让我们从这个开始:
System.out.println(myNumbers[0] + "\t-->\t" + randomNumbers + asterisk);.... 这个打印语句中的randomNumbers是整个数组。你要打印的是数组的一个元素。 -
您可以在从
0到randomNumbers[index]的for 循环中设置要打印的星号数量,而不是使用巨大的switch 语句。这还允许您更改最大随机数,而无需进一步扩展 switch 语句。
标签: java arrays random numbers