如何将数组索引为1而不是0?

时间:2012-12-25 11:20:35

标签: java arrays indexing

在这种情况下,程序应该将所有数组添加到一起。但是,如果我在sum方法参数中输入1,它将从7开始计数,但如果我输入0则输出0.

public class sList {

   public static void main(String[]args) {
       int[] array = {10,7,11,5,13,8}; // How do I make it read the value 10 as 1 in the array?
       sum(array.length,array);
   }

   public static int sum(int n, int[] S) {
       int i;
       int result;

       result = 0;
       for(i=1;i<=n;i++)
           result = result + S[i];

       System.out.println(result);
       return result;
   }    
}

5 个答案:

答案 0 :(得分:8)

我不会通过这个长度,因为:

  • 它是多余的 - array.length告诉你长度,如果你想知道它
  • 无论如何你都不需要知道长度,因为有更好的方法来迭代数组

相反,只需使用foreach loop

遍历传入的整个数组
public static int sum(int[] array) {
    int result = 0;
    for (int i : array)
        result += i;
    return result;
}

这样做会减少代码,反过来又更容易阅读和理解。

答案 1 :(得分:2)

好吧,数组索引以zero开头,我想到的唯一方法是在获取值时递减i的值。

int[] s = {10,7,11,5,13,8}; 

for(i=1;i<=n;i++){
    result = result + S[i-1];
}

答案 2 :(得分:0)

您应该更改for循环:

,而不是更改数组
for(i=0;i<n;i++)

但是如果你不想这样做,你总是可以把第一个元素设为0:

int[] array = {0, 10,7,11,5,13,8};

答案 3 :(得分:0)

想一想,它在0上的重要性(否则在1):

案例0 :( n =长度= 6) 0,1,2,3,4,5,6

案例1:(n = 6) 1,2,3,4,5,6

字面填充数组中的位置: 0,1,2,3,4,5

在任何一种情况下,元素6都不在数组中,因此存在错误。在案例1中,您“忘记”计算索引为0的第一个元素。

这就是为什么你要写: for(i = 0; i <= n-1; i ++)

答案 4 :(得分:0)

然后继续将for循环设置为加1值,以便0数组值准确反映相对索引!

for (int i = 0; i < helloArray.length; i++) {

            if (i == max) {
                System.out.println(helloArray[i]);
                System.out.println("=");
                System.out.println(i+1);
            }