U-style PHP独学日記  Since2001 メインメニューに戻る PHPメニューに戻る
タイトルbreakとcontinueの違い
文書管理番号 作成日 分類1 分類2 キーワード

PHP0014

2002-09-06 文法   break,continue

 ようやくサーバーの設定もひと段落ついたのでPHPの学習を再開します。今回はループ処理中に処理を終了するbreak文とcontinue文について学習します。

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html>
<body>
<?

$Count = 6;
while($Count != 0)
{
$Count--;
if($Count == 3)
{
break;
}
print($Count . "<br>\n");

}
?>
</body>
</html>

 

実行結果

上記はbreak文を利用しているので、count変数が3のときに処理を抜けます。その後にあるprint文も実行されません。すなわちbreak文は処理を実行するとループを抜けます。

次はcontinue文を使ったものです

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<body>
<?

$Count = 6;
while($Count != 0)
{
$Count--;
if($Count == 3)
{
continue;
}
print($Count . "<br>\n");

}
?>
</body>
</html>

実行結果

continue文では値が3のときのみ(ループ文)を抜けました。ifの文内だけでなくWhile文を抜けるということです。そして2からはふたたび実行されています。

つまりbreak文はwhile文のその後の処理を停止し、continue文はその条件の場合のみ処理を停止するということになります。

しかし、入れ子のループの時はどうなんでしょうか?つまり2重ループです。

<?
header("Content-type: text/html; charset=euc-jp");
?>
<html><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<body>
<?

$Count = 6;
while($Count != 0)
{
$Count--;
$Count2 = 6;
while($Count2 != 0)
{
$Count2--;
if($Count == 3)
{
break;
}
print($Count . $Count2 . "<br>\n");
}
}
?>
</body>
</html>

実行結果

実行結果から外のループ文は実行されていることがわかります。すなわち一番近いループ文を抜けるようです。なんだかcontinue文と似ています。

 

感想

本日の参考文献

  • MySQL&PHPでつくるWebデータベース Spencer K Ogawa著 エーアイ出版