welcome: please sign in
location: "break文"の差分
6と8のリビジョン間の差分 (その間の編集: 2回)
2008-12-09 13:39:42時点のリビジョン6
サイズ: 1042
編集者: masahiko
コメント:
2008-12-09 13:55:30時点のリビジョン8
サイズ: 1980
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 52: 行 52:

 {{attachment:break3.png}}

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

----
=== 問題 ===

[[attachment:Susi.java]]

 {{{#!java
 public class Susi
 {
  static String[] neta = {"たい", "まぐろ"};
  static int[] kosu = { 1, 3 };
  
  String aji;
  
  Susi(String a)
  {
   int i;
   
  b1: {
    for (i = 0; i < neta.length; i++)
    {
     if (neta[i].equals(a))
     {
      if (kosu[i] > 0)
      {
       kosu[i]--;
       aji = a;
       System.out.println( aji + "おまち" );
      }
      break b1;
     }
    }
   }
  }
  
  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重ループ内で、内側のループだけを抜けることができます。


問題

Susi.java

  •    1  public class Susi
       2  {
       3         static String[] neta = {"たい", "まぐろ"};
       4         static int[]    kosu = {     1,       3 };
       5         
       6         String aji;
       7         
       8         Susi(String a)
       9         {
      10                 int i;
      11                 
      12         b1:     {
      13                         for (i = 0; i < neta.length; i++)
      14                         {
      15                                 if (neta[i].equals(a))
      16                                 {
      17                                         if (kosu[i] > 0)
      18                                         {
      19                                                 kosu[i]--;
      20                                                 aji = a;
      21                                                 System.out.println( aji + "おまち" );
      22                                         }
      23                                         break b1;
      24                                 }
      25                         }
      26                 }
      27         }
      28         
      29         public static void main(String[] args)
      30         {
      31                 new Susi("たい");
      32                 new Susi("まぐろ");
      33                 new Susi("たい");
      34                 new Susi("まぐろ");
      35                 new Susi("たい");
      36                 new Susi("まぐろ");
      37                 new Susi("たい");
      38                 new Susi("まぐろ");
      39         }
      40  }
    

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