continue 文
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 52/71。
break はループを完全に終了しますが、時には現在のイテレーションをスキップして次のイテレーションに進みたい場合があります。それがまさに continue 文の役割です。
PHP が continue に遭遇すると、ループの次の反復に即座にジャンプし、現在の反復の残りのコードをスキップします。
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>これが出力されます:
1
2
4
53 が欠けていることに注意してください。$i が 3 に等しいとき、continue 文は echo をスキップし、$i が 4 になる次の反復に直接移動します。
配列を処理する際に不要な値をフィルタリングするという一般的なユースケースです:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>これは正の数のみを出力します: 10, 8, および 12。負の値はスキップされますが、ループはすべての要素を処理し続けます。
主な違い:break はループを完全に停止しますが、continue は次の反復にのみスキップします。
チャレンジ
簡単2行の入力を読み取ります:
- 整数のカンマ区切りリスト(例:
3,7,12,5,8,20,15) - 除数
foreach ループを使用して配列をイテレートします。与えられた除数で割り切れる数をスキップするために continue を使用します。他のすべての数を、それぞれ別々の行に印刷します。
例 1:
入力が 1,2,3,4,5,6,7,8,9,10 と 3 の場合、出力は次のようになります:
1
2
4
5
7
8
10(3、6、9 は 3 で割り切れるためスキップされます)
例 2:
入力が 10,15,20,25,30 と 5 の場合、出力は次のようになります:
(すべての数が 5 で割り切れるため、何も印刷されません)
例 3:
入力が 7,14,21,10,5 と 7 の場合、出力は次のようになります:
10
5チートシート
continue 文は、ループの現在の反復をスキップし、次の反復に移動しますが、ループを完全に終了しません。
for ループの基本例:
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>これは 1, 2, 4, 5 を出力します(3 をスキップ)。
foreach で continue を使用して配列の値をフィルタリング:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>これは正の数のみを出力します(10, 8, 12)、負の値をスキップ。
主な違い: break はループを完全に終了しますが、continue は次の反復にのみスキップします。
自分で試してみよう
<?php
// 入力を読み取る
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));
// カンマ区切りの文字列を整数の配列に変換
$numbers = array_map('intval', explode(',', $input));
// TODO: ここにコードを書いてください
// foreach ループを使用して $numbers をイテレートする
// continue を使用して $divisor で割り切れる数をスキップする
// 残りの数をそれぞれ別行で出力する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators