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

Java 如何将数组索引为1而不是0?,java,arrays,indexing,Java,Arrays,Indexing,在这种情况下,程序应该将所有数组添加到一起。但是,如果我在sum method参数中输入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.len

在这种情况下,程序应该将所有数组添加到一起。但是,如果我在sum method参数中输入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;
   }    
}
公共类sList{
公共静态void main(字符串[]args){
int[]数组={10,7,11,5,13,8};//如何使它将数组中的值10读取为1?
和(数组、长度、数组);
}
公共静态整数和(整数n,整数[]S){
int i;
int结果;
结果=0;

对于(i=1;i那么,数组索引以
零开始,我想到的唯一方法是在获取值的同时减小i的值

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

for(i=1;i<=n;i++){
    result = result + S[i-1];
}
int[]s={10,7,11,5,13,8};

对于(i=1;i,您应该更改for循环,而不是更改数组:

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

我不会把长度传进去,因为:

  • 它是冗余的-
    数组。如果您想知道长度,长度将告诉您长度
  • 无论如何,您不需要知道长度,因为有一种更好的方法可以迭代数组
相反,只需使用以下命令遍历传入的整个数组:


这样做的结果是代码大大减少,从而更易于阅读和理解。

只要想想,它对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继续,将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);
            }
for(int i=0;i
for(i=0;我猜您不仅将1更改为0,而且还更改了其他内容,导致结果为0。否则将1更改为0将产生正确的结果(除了您还需要将
n
更改为
n-1
最好的选择是删除数组长度表单参数。
for(i=1;i)“但如果您不想这样做,您可以始终…”…做一些不必要和浪费的事情。将条件更改为
i@RohitJain这怎么会引发ArrayIndexOutOfBoundsException?@11684..
i@Andrew完全同意。如果您想要求和,请更改for循环。为什么要以0开始数组。
public static int sum(int[] array) {
    int result = 0;
    for (int i : array)
        result += i;
    return result;
}
for (int i = 0; i < helloArray.length; i++) {

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