まったくありません。K&R では、このような何もしないループが見られると思いますので、これはほぼ公式のものです。
個人的な好みの問題ですが、私は次のような何もしないループを好みます:
while(something());
ループであることを強調するために、別の行にセミコロンを入れることを好む人もいます:
while(something())
;
さらに、あなたが行ったように、何も入れずにブラケットを使用することを好む人もいます:
while(something())
{
}
すべて有効です。好きなスタイルを選んで、それを使い続けるだけです。
あなたの質問「whileブロックを使用して何もしないのは悪いことですか?」また、CPU サイクルの浪費という観点から回答される場合もあります。この場合、ユーザーが文字を入力するのを待つ間、プロセスはスリープ状態になるため、答えは「いいえ」です。
プロセスは、文字が入力された後にのみウェイクします。次にテストが実行され、テストに合格した場合 (つまり c ==' ')、プロセスは次の文字が入力されるまで再びスリープ状態になります。これは、スペース以外の文字が入力されるまで繰り返されます。
まったく問題ないと思います。
//skip all spaces
while ((c = getchar()) == ' ') {}
この 1 行のコードが 1 つのことを行うことを明確にするためです。
または、次のように書きます:
while ((c = getchar()) == ' ') {
//no processing required for spaces
}
コードの残りの形式と一致するようにします。
個人的には、私はのファンではありません
while ((c = getchar()) == ' ');
フォーマット。セミコロンを見落としやすいと思います。