我正在学习在java中使用数组。我试图分配一个10个随机整数的数组,虽然我的代码返回填充0的数组。我究竟做错了什么? 帮助将不胜感激。
import java.util.Random;
public class E7point1
{
public static void main(String[] args)
{
int[] array = new int[10];
int i = 0;
Random random = new Random();
while (i < array.length)
{
array[i] = 1 + random.nextInt(100);
i++;
}
System.out.print(array[i]);
}
}
答案 0 :(得分:5)
提供的代码应该为您提供java.lang.ArrayIndexOutOfBoundsException
,因为当您到达i
时,10
将等于System.out.print(array[i]);
...
相反,请尝试使用
// System.out.print(array[i]);
for (int ri : array) {
System.out.println(ri);
}
你们其余的代码似乎对我来说很好......
<强>更新强>
正如Pshemo和Thihara指出的那样,你可以简单地使用......
System.out.print(Arrays.toString(array));
但我认为使用循环是一个很好的学习练习;)
答案 1 :(得分:2)
像这样使用
Random r = new Random();
// four values [0, 9]
int[] kickerNumbers={r.nextInt(10), r.nextInt(10), r.nextInt(10), r.nextInt(10)};
// one value [0, 4]
int kickerPowerball = r.nextInt(5);
答案 2 :(得分:0)
...或者你可以修改你的while循环:
@Test
public void testGenerateRandomNumbers() throws Exception {
int[] array = new int[10];
int i = 0;
Random random = new Random();
while (i < array.length)
{
array[i] = 1 + random.nextInt(100);
System.out.println(array[i]);
i++;
}
}
但MadProgrammer的建议更好:)
答案 3 :(得分:0)
当值变为10时,它会给你java.lang.ArrayIndexOutOfBoundsException
。
取代System.out.print(array[i]);
使用
for(int i = 0; i < array.length; i++){
System.out.print(array[i]);
}
答案 4 :(得分:0)
import java.util.Random;
public class Test {
public static void main(String[] args) {
Random random = new Random();
int i = 0;
int[] array = new int[10];
while (i < array.length) {
array[i] = 1 + random.nextInt(100);
System.out.println(array[i]);
i++;
}
}
}
答案 5 :(得分:0)
试试这种方式
import java.util.Arrays;
import java.util.Random;
public class E7point1
{
public static void main(String[] args)
{
try{
int[] array = new int[10];
int i = 0;
Random random = new Random();
while (i < array.length)
{
array[i] = 1 + random.nextInt(100);
i++;
}
System.out.print(Arrays.toString(array));}
catch(Exception e)
{
e.printStackTrace();
}
}
}
<强>输出强>
[29, 84, 73, 73, 93, 94, 69, 79, 1, 76]