while文はいらない

Cではループ文はforとwhileがありますが、whileは基本的に使いません。なぜなら
while();
for(;;);
のように必要なバイト数が同じでforの方が書けるところが多いのでわざわざwhileを使う必要がないからです。

ブロックは極力書かない

「{}」のために2バイトも使うのは非常にもったいないのでブロックはできる限り書きません。
for(x;y;z){a=b;c=d;}
for(x;y;z)a=b,c=d;
このようにカンマを使うことでブロックを外すことができます。どうしてもブロックが必要となってしまうのはforのなかにforを2つ以上書く場合です。
for(;;){for(;;);for(;;);}
この場合はブロックを外すことができません。これはブロックがあるだけでなくforがたくさんあるなど縮める余地のあるコードであることが多いので、中のforを1つにまとめるなどの工夫でブロックを外すと短くなることがあります。

このページへのコメント

コメントありがとうございます。
for文一重化やforとmain再帰の比較の定式化は僕も興味あるので研究中です。
だいたいのパターンぐらいは見つけてみたいですね。

0
Posted by not 2011年02月03日(木) 13:28:24 返信

nnです。
ご開Wikiおめでとうございます。
ループで一番の話題は、forの一重かだと思います。どういう時にできて、どういう時にできないのか。その辺を定式化できたらすごいと思います。勝手なコメントですみません。

0
Posted by nn 2011年02月02日(水) 20:49:14 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます