Java-创建具有索引长度的数组
我正在尝试用Java创建一个数组,它可以容纳索引“I”很大时的数字Java-创建具有索引长度的数组,java,arrays,Java,Arrays,我正在尝试用Java创建一个数组,它可以容纳索引“I”很大时的数字 for (int i = 0; i <= 10; i++) { int[] zahlenListe = new int[i]; zahlenListe[i] = i + 5; System.out.println(zahlenListe[i]); } 为此: int[] zahlenListe = new int[11]; 有人想解释错误在哪里吗?长度为
for (int i = 0; i <= 10; i++)
{
int[] zahlenListe = new int[i];
zahlenListe[i] = i + 5;
System.out.println(zahlenListe[i]);
}
为此:
int[] zahlenListe = new int[11];
有人想解释错误在哪里吗?长度为i的数组没有i'th索引。有效索引从0到i-1
如果使用int[]zahlenListe=new int[i+1];;初始化数组;,您可以为ZahlenList[i]赋值。长度为i的数组没有第i个索引。有效索引从0到i-1
如果使用int[]zahlenListe=new int[i+1];;初始化数组;,您可以为ZahlenList[i]赋值。数组索引是以零为基础的。因此,i大小数组的最大索引是i-1。数组索引是以零为基础的。因此,i大小数组的最大索引为i-1 数组从索引0开始 所以索引i永远不会在i维数组中。它停在i-1 对于i==0,数组为空,没有任何条目 您可能希望在i=1时开始循环 从您的代码中也不清楚为什么需要一个数组,但您可能有更多的代码在那里,您没有显示出来 数组从索引0开始 所以索引i永远不会在i维数组中。它停在i-1 对于i==0,数组为空,没有任何条目 您可能希望在i=1时开始循环
从您的代码中也不清楚您为什么需要一个数组,但您可能有更多的代码没有显示出来。如果您使用以下方法创建数组:
int[] zahlenListe = new int[i];
数组zahlenListe中的最后一个元素是zahlenListe[i-1],而不是zahlenListe[i]。此外,假设我应该以1而不是0开始,因为长度数组是无意义的
因此,使用
zahlenListe[i-1] = i + 5;
System.out.println(zahlenListe[i-1]);
如果使用以下方法创建阵列:
int[] zahlenListe = new int[i];
数组zahlenListe中的最后一个元素是zahlenListe[i-1],而不是zahlenListe[i]。此外,假设我应该以1而不是0开始,因为长度数组是无意义的
因此,使用
zahlenListe[i-1] = i + 5;
System.out.println(zahlenListe[i-1]);
如您所见,您需要在数组中从0开始到大小-1
int[] zahlenListe = new int[i];
您的数组大小始终为i,这意味着您可以访问最大i-1
假设i始终大于0,则需要在数组中从0开始到大小-1,如您所见
int[] zahlenListe = new int[i];
您的数组大小始终为i,这意味着您可以访问最大i-1
假设我总是大于0,基本上是因为在你的情况下,你告诉计算机转到第11个元素。这样想吧
int i = 0;
First iteration i = 0
if i <= 10; then i = i + 1
Second iteration i = 1
if i <= 10; then i = i + 1
Third iteration i = 2
if i <= 10; then i = i + 1
Fourth iteration i = 3
if i <= 10; then i = i + 1
Fifth iteration i = 4
if i <= 10; then i = i + 1
Sixth iteration i = 5
if i <= 10; then i = i + 1
Seventh iteration i = 6
if i <= 10; then i = i + 1
Eighth iteration i = 7
if i <= 10; then i = i + 1
Ninth iteration i = 8
if i <= 10; then i = i + 1
Tenth iteration i = 9
if i <= 10; then i = i + 1
Eleventh iteration i = 10
if i <= 10; then i = i + 1
一旦您到达这里,您将尝试访问一个不存在的元素。因为你的条件是,只要我小于或等于10,它就应该重复这个任务。如果你改变基本上是因为在你的情况下,你告诉计算机去第11个元素。这样想吧
int i = 0;
First iteration i = 0
if i <= 10; then i = i + 1
Second iteration i = 1
if i <= 10; then i = i + 1
Third iteration i = 2
if i <= 10; then i = i + 1
Fourth iteration i = 3
if i <= 10; then i = i + 1
Fifth iteration i = 4
if i <= 10; then i = i + 1
Sixth iteration i = 5
if i <= 10; then i = i + 1
Seventh iteration i = 6
if i <= 10; then i = i + 1
Eighth iteration i = 7
if i <= 10; then i = i + 1
Ninth iteration i = 8
if i <= 10; then i = i + 1
Tenth iteration i = 9
if i <= 10; then i = i + 1
Eleventh iteration i = 10
if i <= 10; then i = i + 1
一旦您到达这里,您将尝试访问一个不存在的元素。因为你的条件是,只要我小于或等于10,它就应该重复这个任务。如果你在看到一个打字错误和一个编辑后改变了,我必须注意,如果技术上下文是indices@Arc676由老派编辑并跟进:@sᴜʀᴇsʜᴀᴛᴛᴀ 索引和索引都是有效的英语,但索引更多地用于技术上下文,所有db文档都将其称为indexes@SleimanJneidi这两种方法都是有效的,而且发音时消耗的热量更少。试试看;在看到一个打字错误和一个编辑之后,我必须注意,如果技术上下文是indices@Arc676由老派编辑并跟进:@sᴜʀᴇsʜᴀᴛᴛᴀ 索引和索引都是有效的英语,但索引更多地用于技术上下文,所有db文档都将其称为indexes@SleimanJneidi这两种方法都是有效的,而且发音时消耗的热量更少。试试看;第十一次迭代不是一个问题,至少不比第一次多。不确定你的意思,解释一下!当i==0时,当前代码在其第一次迭代中崩溃。如果你解决了这个问题,它也将适用于i==10。第十一次迭代不是问题,至少不比第一次多。不确定你的意思,解释一下!当i==0时,当前代码在其第一次迭代中崩溃。如果您解决了这个问题,它也将适用于i==10。