目次

ネストされたループから抜ける (goto文の利用) - C#

C#でネストされたループのいちばん深いところから抜け出す場合には、goto文を利用します。

書式

goto ラベル名

ラベル名: ;
"goto ラベル名"から"ラベル名:"にジャンプします。

下記の例では、break;では中のループを抜け出す動作であり、ループ全体から抜ける場合はgoto文を使って抜けます。

コード

private void button8_Click(object sender, EventArgs e)
{
  for (int i=0; i < 10; i++) {
    int j = 0;
    while (true) {
      textBox1.Text += string.Format("({0:d},{1:d}) ",i,j);
      if (i * j == 25) goto EXITLOOP;
      j++;
      if (12 < j) break;
    }
  }
      
  EXITLOOP: ;
  textBox1.Text += "\r\nComplete";
}

実行結果

(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9) (0,10) (0,11) (0,12) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9) (1,10) (1,11) (1,12) (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9) (2,10) (2,11) (2,12) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9) (3,10) (3,11) (3,12) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9) (4,10) (4,11) (4,12) (5,0) (5,1) (5,2) (5,3) (5,4) (5,5) 
Complete
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2020-10-26
作成日: 2011-02-05
iPentec all rights reserverd.