1

我想确保我正在为这个问题编写正确的程序。问题是

编写将创建一个大小为 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]);
        }
  }  
}
4

5 回答 5

6

您可以使用 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));
  }
}
于 2015-04-13T07:15:36.163 回答
4

是的,这看起来是正确的,但有两件事。(1)这可以通过ij不需要)来完成。

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) 这些类型的问题应该发布在代码审查网站上

于 2013-10-08T05:12:44.177 回答
2

是的,这是正确的,在 for 循环中,i<n你也可以写而不是写

i<value.length

              for(i=0; i<value.length; i++)
于 2013-10-08T05:16:00.233 回答
2
int[] arr = new int[10];

         for(i=0; i<n; i++)
         {

            arr[i] = i+1;

         }
  }  
于 2013-10-08T05:19:48.853 回答
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

于 2013-10-08T05:29:21.087 回答