カッコをつけたコードはカッコわるいか

 最近、「カッコをつけたコードはカッコわるいのか論争」という話題を扱ったページを見ました。要するに、if文等の後ろに書く中括弧は文が1つの場合は省略できるのだから省略すべき、という主義と省略してはいけないという主義の論争です。

 これに関する私の感想は1つしかありません。この中括弧はC言語の構文上「省略可能」ではありませんから、論争そのものがナンセンスです。if文の後ろに書くことができる文は常に1つです。複数の文を書きたいときは、複合文を使います。複合文は文を中括弧でくくった構文であり、中括弧は省略できません。

 つまり、この論争では標準的な状態が倒置されています。if文の後ろに文を1つだけ書くのは最も自然な書き方であり、それを許す、許さないという議論は意味がありません。話がこじれていくのは、それを「省略可能」という「手抜きのための追加サービス」と錯覚し、その追加サービスを受け入れるか否かと考えてしまうからでしょう。まるで、誠実であろうとすればそのようなサービスを受け入れるべきではないかのように思ってしまう人もいるでしょう。しかし、それは単なる錯覚でしかありません。

 初心者相手に説明を行う場合、私も「中括弧は省略できる」といった説明を書くことがあります。しかし、それは右も左も分からずに混乱している者達に、とりあえずすぐ分かるようにするための方便であり、C言語のソースコードの書き方の「べき論」を語るレベルで通用する表現ではありません。

 ちなみに私から言えることは、中括弧を付ける、付けないに関して、多数派から承認された特定の結論は存在しない、という事実だけです。付ける付けないはケースバイケースであり、常に付ける、常に付けない、のいずれも適切ではないでしょう。しかし、ケースを区別する特定のルールはありません。


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-18 (火) 08:10:37