ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

switch内にあるif文のブロックが壊れていたときの動作

http://www.reddit.com/r/programming/comments/rhbss/c_switch_with_broken_if_why_does_this_work/:tiltle
ときどきの雑記帖で紹介されていたコード。C code - 20 lines - codepad

#include <stdio.h>

void main(void) {
   int a = 2;
   int b = 0;

   switch(a) {
      case 1:
      if(b==1) {
         puts("a");
         break;
   case 2:
      puts("b");
      break;
   default:
      puts("c");
      break;
   }
   }
}

実行してみたら、自分が思っていたのと違う結果が。これはちゃんと覚えておかないと。あえてこういうコードを書くことは無いけど。