korechi’s diary

とあるVR/ARエンジニアのブログ

条件分岐のいろいろ

フォークスルー

例えばswitch文はC, C++で使われているがC#では禁止されているらしい。
case内でのbreakのし忘れが頻繁におこったためだとか

goto

goto文はifやswitchと違い、無条件に処理の流れを変える命令。そのため、あまり推奨されない。以下の2つの場合にのみ使うことがある

switch文でのgoto文の使用

switch (hoge)
{
case 1:
  goto case 2;
case 2:
  // hogeが1か2だった場合の処理
  break;
default:
  break;
}

for文をぬけ出すための処理

以下のように、for文が2つ以上囲んである場合、その中から抜け出すにはgotを使う。なぜならbreakだとfor(j)からのみぬけ出すことになるから。

for (int i = 0;; i++) {
  for (int j = 0;; j++) {
    if (/*for文全部から抜け出したい*/) {
      goto LOOPEND;
    }
  }
}
LOOPEND:
;