我想确保为这个问题编写正确的程序。问题是
编写将创建大小为n的int数组的代码,并使用值1到n填充数组。请注意,这与数组索引不同,后者从
0
到n-1
。
这是我写的代码:这是正确的吗?
public class shaky{
public static void main(String args[]){
int i;
int j;
int n = 10;
int[] value = new int[n];
for(i=0,j=1; i <= (n-1); i++,j++){
value[i] = j;
System.out.print(value[i]);
}
}
}
答案 0 :(得分:4)
是的,这看起来是正确的,但有两件事。 (1)只需i
(不需要j
)即可完成此操作。
public class shaky
{
public static void main(String args[])
{
int i;
int n = 10;
int[] value = new int[n];
for(i=0; i<n; i++)
{
value[i] = i+1;
System.out.print(value[i]);
}
}
}
(2)这些类型的问题应张贴在code review site。
上答案 1 :(得分:4)
您可以使用Java 8的流。
import java.util.Arrays;
import java.util.stream.IntStream;
public class Test {
public static void main(String[] args) {
int n = 5;
int[] a = IntStream.range(1, n+1).toArray();
System.out.println(Arrays.toString(a));
}
}
答案 2 :(得分:2)
是的,这是正确的,在for循环中而不是写i<n
,你也可以写
i<value.length
for(i=0; i<value.length; i++)
答案 3 :(得分:2)
int[] arr = new int[10];
for(i=0; i<n; i++)
{
arr[i] = i+1;
}
}
答案 4 :(得分:1)
是的,它是正确的,但可以更简单:
public class shaky{
/**
More correct to use this way, because possible
to reuse this code and to have more clean code in main part.
*/
public static int [] initialize(int length){
int [] result = new int [length];
for (int i=0; i<length; i++) result[i] = i+1;
return result;
}
public static void main(String args[]){
for (int value: initialize(10)) System.out.print(value+" ");
}
}
测试它:
1 2 3 4 5 6 7 8 9 10