#include<stdio.h>
int main()
{
while(printf("Hello"))
return 0;
}
出力としてHello
のみを生成します
#include<stdio.h>
int main()
{
while(printf("Hello"));
return 0;
}
2番目のコードは、Hello
を無限に出力します。
#include<stdio.h>
int main()
{
while(printf("Hello"))
{}
return 0;
}
3番目のコードもHello
を無限に出力します。
最初のコード:
printf("Hello")
は、文字数を返します。
printf("Hello")
をwhileループ内で使用すると、Hello
が出力され、5が返されます。
0より大きいため、while
ループはこれをtrueと見なし、while以下のステートメント、つまり_return 0
_を実行します。
_return 0
_は、main
関数が0を返し、実行を停止するようにします。
コード
_while(printf("Hello"))
return 0;
_
と同じ
_while(printf("Hello"))
{
return 0;
}
_
2番目のコード:
while()
の後に_;
_を使用したため、_;
_の後のステートメントは実行されません。したがって、ステートメント_return 0
_は実行されず、while
は条件を無限回チェックして、無限のHello
を出力します。
番目のコード:
は、_{ }
_内でのみステートメントを実行します。
ステートメントを検索した後は毎回空なので、戻って状態をチェックします。
条件は常にtrueであるため、_return 0
_に到達せず、Hello
を無限に出力します。