switch (hoge) { case 0: int i; break; } 上記のように case の中で変数を宣言すると、 syntax error before ‘int’ というように怒られるのが謎だったのですが、これはスコープの問題だそうですね。 以下のように、スコープを case の中に限定してやれば良いようです。なるほど。今までは、if/else で代用したり、switch の外で宣言したりしてごまかしていたので助かりました。UITableView では switch/case が大活躍です(良いコードとは言えませんが……)。 switch (hoge) { case 0: { int i; } break; } 参考:二流プログラマの三流な日常: switch文の途中で宣言する