0
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
4

7 に答える 7

3

元の配列のインデックス02と4のみを置き換え、1と3はそのままにしておくためです(iIndexはループの反復ごとに2ずつ増加します)

于 2013-03-05T05:37:43.560 に答える
2

インクリメントが2回行われたため:

 for(int iIndex=0; iIndex<arrayOne.length; iIndex++)  
 /* Forloop itself increments iIndex*/

 iIndex=iIndex+1; 
 /*You are manually incrementing iIndex*/
于 2013-03-05T05:39:46.233 に答える
2

最初のループを開始すると、以前の値がそれぞれ 1、3、および 5 であるインデックス 0、2、および 4 の値が変更され、ループ後のこれらのインデックスの新しい値はそれぞれ 0、2、および 4 になるためです。出力

0.0
2.0
2.0
4.0
4.0

それ以外の

1.0
2.0
3.0
4.0
5.0
于 2013-03-05T05:54:59.077 に答える
1

配列の0、2、および4番目のインデックスのみを更新しているためです。 forステートメントの元の配列iIndexの場合、ループ内で1回2回更新されます。

float arrayOne[] = {1, 2, 3, 4,5};  

更新された配列

   float arrayOne[] = {0, 2, 2, 4,4};
                       |_____|____|______ Are updated 

削除する

iIndex=iIndex+1;  

すべての値を更新する場合。

于 2013-03-05T05:37:27.097 に答える
1

最初のループで:

for(int iIndex=0; iIndex<arrayOne.length; iIndex++) //<-- here
{ 
      arrayOne[iIndex] = iIndex; 
      iIndex=iIndex+1; //<-- here - get rid of this
} 

iIndexに2回追加します。上記のメモを作成しました。

iIndexforループ定義の一部としてすでにインクリメントしているので、2番目のものを取り除きます。

于 2013-03-05T05:37:51.643 に答える
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値に置き換えられます。

于 2013-03-05T05:38:52.170 に答える
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]); 
             } 
     }
于 2013-03-05T05:57:42.720 に答える