welcome: please sign in
location: "break文"の差分
8と12のリビジョン間の差分 (その間の編集: 4回)
2008-12-09 13:55:30時点のリビジョン8
サイズ: 1980
編集者: masahiko
コメント:
2009-11-20 06:31:20時点のリビジョン12
サイズ: 1378
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 57: 行 57:
----
=== 問題 ===

[[attachment:Susi.java]]
行 63: 行 58:
 public class Susi  for(j = 0; j < n; j++)
行 65: 行 60:
  static String[] neta = {"たい", "まぐろ"};
  static int[] kosu = { 1, 3 };
  
  String aji;
  
  Susi(String a)
 loop2:
行 72: 行 62:
   int i;
   
  b1: {
    for (i = 0; i < neta.length; i++)
   for(i = 0; i < 10; i++)
   {
    ...
    if( ... )
行 77: 行 67:
     if (neta[i].equals(a))
     {
      if (kosu[i] > 0)
      {
       kosu[i]--;
       aji = a;
       System.out.println( aji + "おまち" );
      }
      break b1;
     }
     ...
     break loop2;
行 90: 行 72:
     public static void main(String[] args)
  {
   new Susi("たい");
   new Susi("まぐろ");
   new Susi("たい");
   new Susi("まぐろ");
   new Susi("たい");
   new Susi("まぐろ");
   new Susi("たい");
   new Susi("まぐろ");
  }

break文

break文は繰り返しを途中で抜けるのに使います。


10回繰り返すforループの内側で、 4行目の条件が成り立つときは7行目のbreak文が実行され、その時点でforループを抜けます。

  •    1  for(i = 0; i < 10; i++)
       2  {
       3         ...
       4         if( ... )
       5         {
       6                 ...
       7                 break;
       8         }
       9  }
    

では2重ループの内側でbreak文を使うとどうなるでしょうか。

  •    1  for(j = 0; j < n; j++)
       2  {
       3         for(i = 0; i < 10; i++)
       4         {
       5                 ...
       6                 if( ... )
       7                 {
       8                         ...
       9                         break;
      10                 }
      11         }
      12  }
    


ラベルのあるbreak文

ラベルのあるbreak文はラベルのあるブロックの中で使います。

ラベルのあるブロックの構文を示します。

  • break1.png

ラベルのあるbreak文の構文を示します。

  • break2.png

ラベルのあるbreak文が実行されると、そのラベルのつけられたブロックを抜けます。

  • break3.png

ラベルのあるbreak文を用いると2重ループ内で、内側のループだけを抜けることができます。

  •    1  for(j = 0; j < n; j++)
       2  {
       3  loop2:
       4         {
       5                 for(i = 0; i < 10; i++)
       6                 {
       7                         ...
       8                         if( ... )
       9                         {
      10                                 ...
      11                                 break loop2;
      12                         }
      13                 }
      14         }
      15  }
    

break文 (最終更新日時 2010-12-06 01:07:04 更新者 masahiko)