らかぁ4挺

4行日記

百合分の効能

水曜日に一日中調査して、結局修正できなかったバグが、水曜深夜の百合分補給により、ものの1時間でFixしました。恐るべき百合効果。
で、今日のネタは、上記バグじゃない謎バグについて。コンパイラは文法しか見てくれない(当然だけど)の例。switch文が入れ子になってたんだけど、

    switch(value1){
    case 1:
        ...;
        break;
        }
    case 2:
        switch(value2){
        case A:
            ...;
            break;
        case B:
            ...;
            break;
        break;
    }

実際はもっと括弧とかあるから見づらいんですけど、なんか括弧の位置がとんでもないところに。正しくは5行目の括弧が後ろから2行目に来なきゃいけないんですけどね。インデントあっているのに何でだろう?しかも、このケース、たちの悪いことに、case 2:ってのはただのラベルだから、これでもコンパイルは通ってしまうらしい。チェックレベル上げればWarning位出るかもしれないけど。
きっと百合分が足りない時に作ったソースでしょう。