0

簡単なもの。次は同等ですか?そして、それらのどれかが他のものより経済的または「正しい」ですか?

while (x==y) {}while (x==y) ;while (x==y);​​。

3番目ではなく2番目の式ブラケットとセミコロンの間の空白に注意してください。

私は過去に最初のものを使う傾向がありました。Ta

4

3 に答える 3

3

2番目と3番目の間に違いはありません。

最初の違いは読みやすさだけです。タイプミス(追加)があるのではなく、無限ループが必要であることを明示的に示しています;

于 2012-04-23T15:26:05.267 に答える
2

それらはすべて完全に同等であり、任意の半ば正気のコンパイラで同一のプログラムを生成する必要があります。空白は重要ではなく、両方とも空のステートメント{}を表します。;

于 2012-04-23T15:25:24.040 に答える
1

通常、このようなことを行うときは、セミコロンを独自の行に配置して、酸味剤によって追加されただけではないことを明確にします。

while (whatever)
    ;

もちろん、通常は、次whateverのような副作用がある場合にのみ実行します。

// skip to end of line:
while (((ch=getchar()) != '\n') && (ch != EOF))
    ;

ただし、使用する空のステートメントの正確な構文形式が、生成されるコードに影響を与える可能性は非常に低いため、これは純粋に、コンパイラーではなく、リーダー用に最適化することです。

于 2012-04-23T15:30:00.757 に答える