日々精進

新しく学んだことを書き留めていきます

switch文のfall throughが許されるケース

stack overflowで、以下のようにコードを含まないcaseについてはfall throughを許すと言っている人がいた。

switch (value)
{
  case 0:
    result = ZERO_DIGIT;
    break;

  case 1:
  case 3:
  case 5:
  case 7:
  case 9:
     result = ODD_DIGIT;
     break;

  case 2:
  case 4:
  case 6:
  case 8:
     result = EVEN_DIGIT;
     break;
}

確かに上記はそれほど問題無いように見えるが、開発ルールが複雑になるのと、それほど上記の書き方が活躍する機会はないと思うので fall throughは一律禁止でいいと思う。

参考:

stackoverflow.com