備忘録と戯言

学生がプログラミングの備忘録となんか印象に残ったことを綴る

if文やfor文などの書き方


基本中の基本<if文やfor文など>

プログラムをしていれば必ず知っているであろうif文やfor文(など)ですが、疑問に思ったことがあったので・・・

ほとんどの参考書が私の書き方と違う・・・

何が違うかというと中括弧の位置が違う。

私は以下のように書くのですが・・

if (1)
{
   std::cout << "私はこのように書きます" << std::endl;
}
else
{
   std::cout << "・・・・・" << std::endl;
}

for (;;)
{
   std::cout << "・・・・・";
}

しかし、私が読んできた参考書のほとんどは、

if (1){
   printf("このように書いてある");
}
else{
   printf("・・・・・・・・・・");
}

for (;;){
   printf("・・・・・");
}

という書き方。

中括弧省略できるじゃん!というのはここでは論外です。


ちなみに私の受講している科目の講師も後者。

どのように違くて、どうしてそのような書き方をするのか色々調べた。


とりあえず、この2つのスタイルを調べた。

前者(私も使っている書き方)をBSD/オールマンのスタイル」と言うらしい。

利点は、中括弧の開始と終了が同じ位置なのでわかりやすい。
(私もここが使用している最大の理由です。)

欠点としては、中括弧のためだけに余分な1行を使ってしまう。


後者をK&Rのスタイル/カーネルスタイル」というらしい。

利点は、ソースファイル全体の行数が前者より少なくて済む。

欠点は、中括弧の開始の位置を探すのが困難・・・らしい。

ここまでは  字下げスタイル - Wikipedia
に書いてあったことを軽く書き写してみました。


利点、欠点とは書きましたが、ソースコードなんていうのは、見やすく書く事が重要だと思うので、これはあくまでも私が感じた事柄だと思って受け取ってください。

前者が見やすければ前者のスタイルで書くし、後者も然り。

個人差の激しい分野で、論争しても終わりが無いと思うので・・・


ここからは、様々なサイトに書いてあったり、受講している講師に聞いたことなのですが、

K&Rのスタイルで書いている人はコードに「適度な密度」を求めている人が多いようです。BSD/オールマンのスタイルで書くと中括弧だけの行が多くできて何か過疎感が感じられるようです。スカスカなコードに美しさを感じないようです。

1行ずつ見てく時に処理の記述を読んでいくのに急に「中括弧だけの行」があるのが堪らないらしいです・・・


私はなんとも感じないのですがね・・・。



私は学生なのでわかりませんが、会社などで複数人でプロジェクトを進めていく時は当然コードのスタイルを統一すると思うので、慣れとく必要がある・・・のかな?