while ループ
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 48/71。
for ループは、反復回数を正確に知っている場合に非常に効果的に動作しますが、while ループは、条件が偽になるまでループを続けたい場合に最適です。
while ループは、各イテレーションの前にその条件をチェックします。条件が true の場合、中のコードが実行されます。これが条件が false になるまで続きます。
<?php
$count = 1;
while ($count <= 3) {
echo "Count: $count\n";
$count++;
}
?>出力:
Count: 1
Count: 2
Count: 3ループは $count <= 3 をチェックすることから始まります。それが真であるため、コードが実行され、$count がインクリメントされます。$count が 4 に達すると、条件が失敗し、ループが停止します。
重要: ループ内の何かが最終的に条件を偽にすることを常に確かめてください。そうでなければ、決して停止しない無限ループを作成してしまいます。
<?php
$total = 0;
$num = 1;
while ($total < 10) {
$total += $num;
$num++;
}
echo $total;
?>これは合計が10に達するか超えるまで数字を追加し続け、最終値を表示します。
チャレンジ
簡単入力から目標合計を表す単一の整数を読み取ります。
while ループを使用して、1 から始まる連続する数字 (1, 2, 3, 4, ...) を合計が目標合計に達するか超えるまで加算します。
最終合計を最初の行に、最後に追加された数字を 2 番目の行に印刷します。
例 1:
入力が 10 の場合、出力は次のようになります:
10
4(1 + 2 + 3 + 4 = 10、目標に達します)
例 2:
入力が 15 の場合、出力は次のようになります:
15
5(1 + 2 + 3 + 4 + 5 = 15)
例 3:
入力が 7 の場合、出力は次のようになります:
10
4(1 + 2 + 3 + 4 = 10、7 を超えます)
チートシート
while ループは、各イテレーションの前に条件をチェックし、条件が false になるまで実行を続けます。
基本構文:
<?php
$count = 1;
while ($count <= 3) {
echo "Count: $count\n";
$count++;
}
?>ループは各イテレーションの前に $count <= 3 をチェックします。条件が false になると、ループは停止します。
重要: ループ内で条件が最終的に false になる何かを必ず確保し、無限ループを避けてください。
累積の例:
<?php
$total = 0;
$num = 1;
while ($total < 10) {
$total += $num;
$num++;
}
echo $total;
?>自分で試してみよう
<?php
// 目標合計を読み取る
$target = intval(fgets(STDIN));
// 変数を初期化
$total = 0;
$num = 0;
// TODO: ここにコードを書く
// whileループを使用して連続する数 (1, 2, 3, ...) を加算
// 合計が目標に達するまでまたは超えるまで
// 最終合計と最後に追加された数を表示
echo $total . "\n";
echo $num;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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