2015.
09.
17
12:48:52
結論から書くと
と書けばOKです。
例えば
と書けば、2階層分まとめてbreakします。
……で説明は終わりですが、味気ないのでサンプルプログラムでも置いておきますね。
こんなコードを実行するとφ(--)
こんな結果が表示されますφ(--)
1階層抜ける処理では、break時点で変数$kのループを抜けるので、
$i、$jのループは引き続き行われます。
$iと$jがインクリメントされているのはループしているからです。
$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。
2階層抜ける処理では、break時点で変数$kのループと変数$jのループを抜けるので、
$iのループのみ引き続き行われます。
$iがインクリメントされているのはループしているからです。
$j、$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。
3階層抜ける処理では、break時点で変数$i、$j、$kのループをすべて抜けます。
ですから、すべての値が「0」のときの1回しか表示されていません。
そんな感じ\(--)/
break 【breakする階層】;
と書けばOKです。
例えば
break 2;
と書けば、2階層分まとめてbreakします。
……で説明は終わりですが、味気ないのでサンプルプログラムでも置いておきますね。
こんなコードを実行するとφ(--)
<?php
print "■1階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break;
}
}
}
print "<br>\n";
print "■2階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break 2;
}
}
}
print "<br>\n";
print "■3階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break 3;
}
}
}
print "■1階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break;
}
}
}
print "<br>\n";
print "■2階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break 2;
}
}
}
print "<br>\n";
print "■3階層<br>\n";
for($i = 0; $i < 3; $i++){
for($j = 0; $j < 3; $j++){
for($k = 0; $k < 3; $k++){
print "i = {$i} j = {$j} k = {$k}<br>\n";
if($k == 0) break 3;
}
}
}
こんな結果が表示されますφ(--)
■1階層
i = 0 j = 0 k = 0
i = 0 j = 1 k = 0
i = 0 j = 2 k = 0
i = 1 j = 0 k = 0
i = 1 j = 1 k = 0
i = 1 j = 2 k = 0
i = 2 j = 0 k = 0
i = 2 j = 1 k = 0
i = 2 j = 2 k = 0
■2階層
i = 0 j = 0 k = 0
i = 1 j = 0 k = 0
i = 2 j = 0 k = 0
■3階層
i = 0 j = 0 k = 0
i = 0 j = 0 k = 0
i = 0 j = 1 k = 0
i = 0 j = 2 k = 0
i = 1 j = 0 k = 0
i = 1 j = 1 k = 0
i = 1 j = 2 k = 0
i = 2 j = 0 k = 0
i = 2 j = 1 k = 0
i = 2 j = 2 k = 0
■2階層
i = 0 j = 0 k = 0
i = 1 j = 0 k = 0
i = 2 j = 0 k = 0
■3階層
i = 0 j = 0 k = 0
1階層抜ける処理では、break時点で変数$kのループを抜けるので、
$i、$jのループは引き続き行われます。
$iと$jがインクリメントされているのはループしているからです。
$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。
2階層抜ける処理では、break時点で変数$kのループと変数$jのループを抜けるので、
$iのループのみ引き続き行われます。
$iがインクリメントされているのはループしているからです。
$j、$kは値が「0」の時点でループを抜けるので「0」しか表示されていません。
3階層抜ける処理では、break時点で変数$i、$j、$kのループをすべて抜けます。
ですから、すべての値が「0」のときの1回しか表示されていません。
そんな感じ\(--)/