3

演算子< (より小さい) は何をしますか? また、終了した
理由を説明できますか?for-loop

main()
{
   int i = 1, j = 1 ;
   for ( ; j ; printf ("%d%d\n", i,j))
   {
      j = i++ <  5 ;
   }
   return 0;
}

私は次のように出力を得ました

   21
   31
   41
   51
   60
4

3 に答える 3

2

iコードは が 5 より小さいかどうかをチェックし、次にインクリメントしますi。比較結果は に格納されjます。

このようなループを作成する方法は非常にわかりにくいものです。あまり読めません。

于 2013-09-02T09:27:57.257 に答える
0

ループが i++ を実行しているとき、実際には i の値をインクリメントしています。条件 j= i++ < 5 は戻り値 '1' または '0' をチェックするため、それに応じて出力 print ステートメント printf ("%d%d\n", i,j) が出力されます

i=2 ; j=2<5 -> 1 を返すので、print (2,1) i=3; j=3<5 -> 1 を返すので (3,1) を出力

条件が false になり、出力が最終的に j=return '0' for i=6 になるまで続きます

これにより、 ans (6,0) が得られます

于 2013-09-02T09:38:09.527 に答える
0

が 5 未満の1場合はを返し、それ以外の場合は を返します。次のループ反復まで、インクリメントは比較に影響しないことに注意してください。i0

于 2013-09-02T09:27:14.800 に答える