演算子< (より小さい) は何をしますか? また、終了した
理由を説明できますか?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
演算子< (より小さい) は何をしますか? また、終了した
理由を説明できますか?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
i
コードは が 5 より小さいかどうかをチェックし、次にインクリメントしますi
。比較結果は に格納されj
ます。
このようなループを作成する方法は非常にわかりにくいものです。あまり読めません。
ループが 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) が得られます
が 5 未満の1
場合はを返し、それ以外の場合は を返します。次のループ反復まで、インクリメントは比較に影響しないことに注意してください。i
0