【发布时间】:2019-10-31 19:14:31
【问题描述】:
我试图创建对象,它的大小和数量由用户定义,但只有一个数组输出。有没有办法在循环中创建数组?
public class Somehthing {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
Random rnd = new Random();
System.out.println("How many array?:");
for (int j = 0; j <= sc.nextInt(); j++) {
System.out.println("Define array size:");
int[] dizi = new int[sc2.nextInt()];
for (int i = 0; i <= dizi.length - 1; i++) {
int deger = rnd.nextInt(1000000);
dizi[i] = deger;
System.out.println(array[j]);
}
}
}
}
【问题讨论】:
-
看起来你想要一个二维数组。
int [][] array = new int[sc2.nextInt()][]; -
顺便说一下
i<=array.length-1可以简化为i < array.length,因为<不会包含array.length -
你肯定不希望
for(int j=0;j<=sc.nextInt();j++)-nextInt()将在每次迭代之前被调用 -int arrayCount = sc.nextInt(); for (int j = 0; j < arrayCount; j++)(另请注意:使用<,而不是<=) -
你不需要 2 个
Scanners - 一个就足够了。 -
只是我的看法:我不喜欢
new int[sc2.nextInt()]它在一行中做两个非平凡的操作;我更喜欢int dim = sc2.nextInt(); new int[dim];更易于阅读(IMO)和调试;我还会添加一些输入检查(负数?)
标签: java arrays loops createobject