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

  Products[] products = reports[i].getDecisions;

  for (int j = 0; j < products.length; j++) {

  }
}

在这里,我想从 1 开始索引内部 for 循环,但它没有按预期工作,我还更改了 j

4

6 回答 6

15

Java 数组总是从 0 开始的。你无法改变这种行为。您可以从另一个索引填充或使用它,但不能更改基本索引。

如果您对它感兴趣,它在JLS §10.4中定义。

数组的组件由数组访问表达式(第 15.13 节)访问,该表达式由一个表达式组成,该表达式的值是一个数组引用,后跟一个由 [ 和 ] 包围的索引表达式,如 A[i]。

所有数组都是 0-origin。长度为 n 的数组可以由整数 0 到 n-1 索引。

于 2013-08-28T09:48:26.760 回答
8

您不能这样做,因为 Java 中的数组索引从 0 开始。但是您可以访问索引为 1 的数组,只需稍作修改。

示例:考虑一个长度为 n 的整数数组“a”

for(int i=0;i<n;i++) {
    System.out.println(a[i]);
}

这可以修改为:

int a[] = new int[n+1];
for(int i=1;i<n+1;i++) {
    System.out.println(a[i]);
}
于 2013-08-28T09:55:52.810 回答
1

就像在大多数语言中,数组从 0 开始索引。你最好习惯它,没有解决方法。

于 2013-08-28T09:48:44.573 回答
1

Java 数组的基本索引始终为0。它不能更改为 1。

于 2013-08-28T09:51:15.780 回答
0

在 C 、 C++ 、 Java 等中都很简单。数组索引仅从“0”开始。我们无法改变它。但有时在一些实践问题中,我们被要求使用基于 1 索引的数组,我们实际上不能这样做,所以要解决这个问题,只需将第 0 索引放在一边,然后从第 1 索引开始使用数组,在解决这种情况时,请始终牢记,我们永远不能在我们的操作中包含或使用第 0 个索引。

于 2021-01-26T09:32:45.520 回答
0

您可以使用指针跳转到数组的某个点并从那里开始数组。

例如:

char str[20];
str={'H', 'E' ,'L' ,'L', 'O','W' ,'O ','R','L',' D'};
char *ptr;
*ptr=str[0];
//right now its pointing to the starting.
ptr=ptr+3;
//Now pointing at 3rd unit.

这不适用于每个编译器。这是可以为您的问题做的最接近的事情。

于 2020-03-06T19:00:32.693 回答