MW211 EXIT

devlog
switch-case文の字下げ(インデント)
2011年08月15日
switch-case文は、caseを一段下げると見やすいので、
以下のような感じで字下げを行っていた。
┌───────────┐
│switch (判定項目) {   │
│  case 判定値:        │
│    処理;             │
│    break;            │
│  case 判定値:        │
│    処理;             │
│    break;            │
│  default:            │
│    処理;             │
│    break;            │
│}                     │
└───────────┘
だが、処理中にif文のネストを入れてみると、caseと同じ階層に閉じ括弧「}」がなく
間延びしていることがわかる。
┌───────────┐
│switch (判定項目) {   │
│  case 判定値:        │
│    if (判定文) {     │
│      if (判定文) {   │
│        if (判定文) { │
│          処理;       │
│        }             │
│      }               │
│    }                 │
│  @←この階層に「{」がない
│    break;            │
~~~~~~~~~~~~~
│}                     │
└───────────┘
ということで、以下のようにswitchの階層とcaseの階層を同一としようと思う。
┌───────────┐
│switch (判定項目) {   │
│case 判定値:          │
│  処理;               │
│  break;              │
│case 判定値:          │
│  処理;               │
│  break;              │
│default:              │
│  処理;               │
│  break;              │
│}                     │
└───────────┘
ちょっと違和感があるが、慣れの問題なのだろう。
ちなみにif-else文との対応関係であれば、以下のような感じだ。
であれば、後者(右)に統一したと思えばいい。
┌───────────┐┌───────────┐
│if (判定文) {         ││if (判定文) {         │
│    処理;             ││  処理;               │
│  } else if (判定文) {││} else if (判定文) {  │
│    処理;             ││  処理;               │
│  } else {            ││} else {              │
│    処理;             ││  処理;               │
│}                     ││}                     │
└───────────┘└───────────┘
┌───────────┐┌───────────┐
│switch (判定項目) {   ││switch (判定項目) {   │
│  case 判定値:        ││case 判定値:          │
│    処理;             ││  処理;               │
│    break;            ││  break;              │
│  case 判定値:        ││case 判定値:          │
│    処理;             ││  処理;               │
│    break;            ││  break;              │
│  default:            ││default:              │
│    処理;             ││  処理;               │
│    break;            ││  break;              │
│}                     ││}                     │
└───────────┘└───────────┘

…と思ったが、使ってみるとことのほか見づらい。
if文を使わずswitch-case文を使っているメリットが半減したようだ。
ということで、特例的に字下げは元のままとしようと思う。
これはあくまで与太話ということで。。。
分類:設計