13,060
回編集
| 206行目: | 206行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
==== | ==== break ==== | ||
繰り返し処理の中で<code>break</code>を実行すると、繰り返し処理を終了させることができる。<br> | |||
<code>break</code>は、繰り返し処理の他に<code>switch</code>文でも使用される。<br> | |||
<br> | |||
以下の例では、変数の値を1から100まで変化させて合計した値を表示している。<br> | |||
合計した値が1000を越える場合は<code>break</code>を実行して、<code>while</code>文を終了している。<br> | |||
このように、<code>break</code>を使用することで任意のタイミングで<code>for</code>文や<code>while</code>文を終了することが可能となる。<br> | |||
<syntaxhighlight lang="php"> | |||
$count = 1; | |||
$sum = 0; | |||
while($count <= 100) | |||
{ | |||
$sum += $count; | |||
if($sum > 1000) | |||
{ | |||
print '1000を越えたので count = '.$count.' で終了します'; | |||
break; | |||
} | |||
$count += 1; | |||
} | |||
// breakが実行された時に処理が移る位置 | |||
print 'sum = '.$sum; | |||
</syntaxhighlight> | |||
<br> | |||
また、ネストされた繰り返し処理において、<code>break</code>に数値を記述すると、抜ける繰り返し処理の階層を指定することができる。<br> | |||
break <階層数>; | |||
<br> | |||
以下の例では、<code>break</code>が実行された時に、2階層分の繰り返し処理を抜けている。<br> | |||
このように、<code>break</code>を使用することで、単純に繰り返し処理を抜けるだけではなく、何階層抜けるのかを指定することも可能である。<br> | |||
<syntaxhighlight lang="php"> | |||
$i = 1; | |||
while($i < 5) | |||
{ | |||
$j = 1; | |||
while($j < 5) | |||
{ | |||
if($i * $j > 15) | |||
{ | |||
break 2; | |||
} | |||
$j += 1; | |||
} | |||
$i += 1; | |||
} | |||
// breakが実行された時に処理が移る位置 | |||
</syntaxhighlight> | |||
<br> | |||
==== continue ==== | |||
繰り返し処理の中で<code>continue</code>を実行する時、繰り返し処理のブロック内でそれ以降の処理を実行せずに、次の条件式の評価を行う。<br> | |||
<br> | |||
以下の例では、変数の値を1から100まで変化させて合計した値を出力している。<br> | |||
<code>while</code>文の処理の中で、加算しようとする値が2の倍数である場合は、加算を行わずに次の条件式の評価へ処理が移る。<br> | |||
このように、<code>continue</code>を使用することにより、細かく繰り返し処理を制御することが可能となる。<br> | |||
<syntaxhighlight lang="php"> | |||
$count = 0; | |||
$sum = 0; | |||
while($count < 100) | |||
{ | |||
$count += 1; | |||
if($count % 2 == 0) | |||
{ | |||
continue; | |||
} | |||
$sum += $count; | |||
} | |||
print 'sum = '.$sum; | |||
</syntaxhighlight> | |||
<br> | |||
また、ネストされた繰り返し処理において、<code>break</code>と同様に階層数を指定することで、何階層を抜けて条件式の評価に戻るのかを指定することができる。<br> | |||
<syntaxhighlight lang="php"> | |||
continue <階層数>; | |||
</syntaxhighlight> | |||
<br> | |||
以下の例では、<code>continue</code>が実行された時、2階層分の残りの繰り返し処理を飛ばして、外側(while文)の条件式の評価に処理が移る。<br> | |||
<code>break</code>と同様、<code>continue</code>を使用することにより、繰り返し処理の制御をより細かく行うことができる。<br> | |||
<syntaxhighlight lang="php"> | |||
$count1 = 0; | |||
$sum = 0; | |||
while($count1 < 10) | |||
{ | |||
$count1 += 1; | |||
$count2 = 0; | |||
while($count2 < 10) | |||
{ | |||
$count2 += 1; | |||
if($count1 * $count2 > 30) | |||
{ | |||
continue 2; | |||
} | |||
$sum += $count1 * $count2; | |||
} | |||
} | |||
print 'sum = '.$sum; | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||