1042
コメント:
|
1980
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 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ループを抜けます。
では2重ループの内側でbreak文を使うとどうなるでしょうか。
ラベルのあるbreak文
ラベルのあるbreak文はラベルのあるブロックの中で使います。
ラベルのあるブロックの構文を示します。
ラベルのあるbreak文の構文を示します。
ラベルのあるbreak文が実行されると、そのラベルのつけられたブロックを抜けます。
ラベルのあるbreak文を用いると2重ループ内で、内側のループだけを抜けることができます。
問題
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 }