class MainDemo{
public static void main(String args[]){
float arrayOne[] = {1, 2, 3, 4,5};
for(int iIndex=0; iIndex<arrayOne.length; iIndex++)
{
arrayOne[iIndex] = iIndex;
iIndex=iIndex+1;
}
for(int iIndex=0; iIndex<arrayOne.length; iIndex++)
{
System.out.println(arrayOne[iIndex]);
}
}
}
为什么输出?
0.0
2.0
2.0
4.0
4.0
而不是
0.0
1.0
2.0
3.0
4.0
答案 0 :(得分:3)
因为你只替换了原始数组中的索引0 2和4,并且保持1和3不变(iIndex每次循环迭代增加2)
答案 1 :(得分:2)
因为增量已经完成两次:
for(int iIndex=0; iIndex<arrayOne.length; iIndex++)
/* Forloop itself increments iIndex*/
和
iIndex=iIndex+1;
/*You are manually incrementing iIndex*/
答案 2 :(得分:2)
Dude,因为当你开始你的第一个循环时,它会改变索引0,2和4的值,它们的先前值分别为1,3和5,对于这些索引,循环后的新值分别为0,2和4,这就是为什么你得到了输出
0.0
2.0
2.0
4.0
4.0
而不是
1.0
2.0
3.0
4.0
5.0
答案 3 :(得分:1)
因为您只更新数组的第0和第4个索引。如果对于语句
,iIndex
在循环中一次更新两次
原始数组
float arrayOne[] = {1, 2, 3, 4,5};
更新了数组
float arrayOne[] = {0, 2, 2, 4,4};
|_____|____|______ Are updated
删除
iIndex=iIndex+1;
如果您想更新每个值。
答案 4 :(得分:1)
在你的第一个循环中:
for(int iIndex=0; iIndex<arrayOne.length; iIndex++) //<-- here
{
arrayOne[iIndex] = iIndex;
iIndex=iIndex+1; //<-- here - get rid of this
}
您添加iIndex
两次。我上面做了笔记。
删除第二个,因为你已经将iIndex
作为for循环定义的一部分递增。
答案 5 :(得分:0)
请注意这一行iIndex=iIndex+1;
。
for(int iIndex=0; iIndex<arrayOne.length; iIndex++) //iIndex get incremented by 1 here.
{
arrayOne[iIndex] = iIndex;
iIndex=iIndex+1; //iIndex get incremented by 1 here.
}
上述循环将从0开始,每次增加2,如上所述。因此,iIndex值将为0,2,4 ...。索引1,3处的值保持不变,值为0,2,4 ......将被iIndex值替换。
答案 6 :(得分:0)
public static void main(String args[]){
float arrayOne[] = {1, 2, 3, 4,5};
for(int iIndex=0; iIndex<arrayOne.length; iIndex++)
{
arrayOne[iIndex] = iIndex;
// iIndex=iIndex+1; comment this line, twice increment is not required.
}
for(int iIndex=0; iIndex<arrayOne.length; iIndex++)
{
System.out.println(arrayOne[iIndex]);
}
}