break 強制的にプロックを抜けます - 萌えJava超入門
第九章 制御文

break;

強制的に{プロック}を抜けます。
(メソッドを抜けたい場合は returnですよ~。)

break;
目次


1.使ってみる

break で while文のブロックを抜けます。
ブロックというのは「{}」(波カッコ)の中のことです。

//Sample38_31.java
class Sample38_31 {
    public static void main(String[] args){
        int i = 10;
        while(true){//無限ループ
            if(i<0){
                break;
            }else{
                System.out.println(i);
                i--;
            }
        }
        System.out.println("Booom!!");
    }
}

コマンドライン
> javac Sample38_31.java
> java Sample38_31
10
9
8
7
6
5
4
3
2
1
0
Booom!!

while(true) というのは、無限ループです。
条件式はいつまでたっても trueです。

変数 i を1ずつ減らして、0より小さくなったところで、break がかかります。
breakの直近のブロックは whileブロックなので、whileブロックを抜けます。
無事爆破に成功しました。

サンプルコードではこのように書いたが、
可読性の観点からすると、
while文の条件式を用いるのが望ましい。
   こう→ while(i>=0)
while文の条件式以外の
「例外的な中断」で使うのがいいだろう。


2.breakで抜けられるブロック

ブロックというのは「{}」(波カッコ)の中のことですが、
break で抜けられるブロックは、
  1. while文
  2. for文
  3. switch文
この3つと考えていいでしょう。
なお、ブロックが入れ子(ネスト)になっていた場合、抜けるのは直近のブロックだけです。
無限ループが抜けられなくなったら ↓これですよ!

コマンドラインの強制停止
[Ctrl]+[C]


3.if文の波カッコは数えない

Sample38_31 でも分かるように、if文 の波カッコはブロックに数えません
その外側の while文 が break します。
そりゃそうですよ。
if文 は条件が満たされると ifブロックを抜ける仕様なのですから、
常に break 状態です。


楽しくなってきました? お疲れ様でした。




© 2019 awasekagami