【C言語】if文にかっこをつけずに一行に省略して書いていたときの話

 皆さんこんにちは。ロクと申します。

 今回は、僕がプログラミング初心者だったころの体験談について少し話していこうと思います。

 話す内容はif文についてですが、その書き方に少し問題があったなーという気がするので振り返ってみます。

if文内の処理を一行で書くとき

 僕がプログラミングを本当に始めたばかりの時、if文を書いたら{}をつけて、その中に処理をかいていかないとエラーになると思っていました。

 しかし、その後少しして、ほかのプログラミングが詳しい方から「実はif文は中の処理が一行だけの時は{}は省略して書いてもいいんだよ(^^♪」という風に教えてもらいました。

 この時はまだ、何かしらのメリットがあるようには思えず、いったんスルーしていたんですが、その後なぜか「if文の{}省略したほうが何となくかっこいいんじゃね?」と思い始め、少しずつ使い始めたのです。

 以下のコードが{}をつけて書く時のif文、

if(i>4)
{
   i=0;
}

 そして、次のコードが{}を省略して書くif文となります。

if(i>4)
   i=0;

かっこなしif文を乱用し始める

 僕はその後、プログラムをできるだけ短くしてやろうという情熱に燃えて、あらゆる工夫をするようになりました。

 プログラム全体の行数を少しでも減らせるのなら、少々わかりにくいプログラムとなっても構わない(←危険思想)と思っていたほどです。

 もちろん、{}をつけないif文も、中の処理が一行だけの時は躊躇なく使いました。

 これでも当時は、「プログラムを短くできる俺すごい('ω’)ドヤッ」みたいに思っていたんです。

 if文以外のwhile文やfor文も{}をつけるという共通点から、中の処理が一行だけならかっこがいらないということに気が付いたのもちょうどこの時期だったと思います。

 もちろん、僕が書くプログラムは短さだけを追い求めたせいで、どんどん複雑でわかりにくくなっていきます。

省略if文はデメリットが多い

 今となっては、if文やwhile文、for文には必ず{}をつけるようになりましたが(←丸くなったということで)、何度もコードを書いていくうちに{}を省略するのはあまりよくないということに気づいていきました。

 デメリットのリストを上げておきます。

 かっこをつけないデメリット

  • 処理があとから2行以上に増えた時に修正が面倒
  • 中の処理を1行で書く場合が少ない
  • かっこをつけないことによるミスが起こりやすい
  • 文の構造がわかりにくくなる

 アプリ開発をする際などは、コードは何度も修正されますし、ほかの人が自分のコードを見る可能性もあります。

 ですので、{}を省略して書くよりもわかりやすさや修正しやすさを重視して書くことが重要になってきます。

 また、昔は使用できるメモリ量が限られていたためコード量は極力少なくしようと試みられていたようですが、現在のコンピュータはメモリ量の心配をしなくていいほどにスペックが上がりましたので、わざわざコードを短くする必要もないのです。

 現代でかっこを省略して書いた場合のメリットは「見た目がかっこよくなる」くらいですかね笑

最後に

 ここまで、過去に僕がやらかしていた書き方について話してきましたが、やはり、{}は基本的に省略しない方がいいと思われますね。

 もし今この書き方をなさっている方がおられましたら、強制はしませんが、できるだけ書き方を変えることをお勧めします。

 それではまた~。

プログラミング

Posted by ロク