C言語のカッコ、「{」や「}」は省略しない方が良い理由

記事内に広告が含まれています。

C言語では制御文(if-else,for,while)で実行する文が1行の場合は中括弧の「{」や「}」は省略可能ですが、基本的には省略しない方が良いです。

C言語のカッコ、「{」や「}」は省略しない方が良い理由

C言語では制御文(if-else,for,while)で実行する文が1行の場合は中括弧の「{」や「}」は省略可能になります。
例えば

if( i == 0 )
j = 100 ; //・・・①

for( cnt = 0 ; cnt < 10 ; cnt++ ) num += cnt ; //・・・② num = 0 ; cnt = 1 ; while( num < 10 ) num += cnt ; //・・・③ [/c] は①、②、③とも正常に実行されます。 でも私はこの中括弧の「{」や「}」は必ず書くようにしています。 新人のころに関わった仕事で「のちに不具合を生むようなプログラムは記述するな」という指摘で、いつの間にか1文でも中括弧の「{」や「}」で括ります。 「仕様変更」などで処理が追加されることはよくあることで、その時に中括弧の「{」や「}」をつけ忘れた時に起こる不具合を未然に防ごうということらしいです。 [c] if( i == 0 ) j = 100 ; k = 200 ; [/c] では「k」はif文が成り立つかどうかに関係なく「k」は200になりますが [c] if( i == 0 ){ j = 100 ; k = 200 ; } [/c] では「k」はif文が成り立つ時のみ「k」は200になります。 このようなミスを未然に防ごうと言うことです。

タイトルとURLをコピーしました