我需要帮助才能使我的程序在 45 和 -5 之间输出 50 随机数。我不知道为什么它不输出。它必须使用数组。它也应该显示在 5 列中。
我的代码:
int randnum[]=new int[50];
for(int i=0;i<=50;i++)
randnum[i]=(int)(Math.random()*(45+5))-5;
System.out.println(randnum[i]+"");
答案 0 :(得分:4)
首先你错过了像@Reimeus这样的大括号
第二次您没有将i
与5
进行比较,您尝试将i
与5
分配。
您的代码应如下所示:
int randnum[]=new int[50];
for(int i=0; i<50; i++) { // <--- add { here & delete = in condition
randnum[i]=(int)(Math.random()*(45+5))-5;
if(i % 5 == 0) { // <--- add a = here & a modulo operator for 5 columns
System.out.println("");
}
System.out.print(randnum[i]+" "); // <--- set your print down here
} // <--- add } here
更新#1:
您的数组有50
个索引,从0
到49
。 但您的for loop
从0
迭代到50
,向前迈进一步。所以你应该在这里运行i < 50
,否则你将会超出界限。
否则你会在这里得到这样的东西:
java.lang.ArrayIndexOutOfBoundsException: 50
更新#2:
我添加了另一个if
- 语句条件,并在此语句上方设置了print
一行,以便您希望在 5列中发布。
答案 1 :(得分:1)
您错过了for
语句的左大括号,这意味着println
语句超出了循环范围。你也在if语句中使用了一个赋值。您需要使用==
运算符来执行整数比较。
数组从零开始:使用数组length
属性来避免当前发生的ArrayIndexOutOfBoundsException
:
最后,您可以使用模运算符将值打印到列中:
int randnum[] = new int[50];
for (int i = 0; i < randnum.length; i++) {
randnum[i] = (int) (Math.random() * (45 + 5)) - 5;
if (i % 5 == 0) {
System.out.println();
}
System.out.print(randnum[i] + "\t");
}
答案 2 :(得分:0)
你必须小心括号:
int randnum[]=new int[50];
for(int i=0;i<=50;i++)
{
randnum[i]=(int)(Math.random()*(45+5))-5;
System.out.println(randnum[i]+"");
if(i==5)
System.out.println("\n");
}
答案 3 :(得分:0)
你没有for语句的左括号。你还需要做“if(i == 5)”而不是“if(i = 5)”。 所以它应该是:
int randnum[]=new int[50];
for(int i=0;i<=50;i++){
randnum[i]=(int)(Math.random()*(45+5))-5;
System.out.println(randnum[i]+"");
if(i==5){
System.out.println("\n");
}
}