こんにちは、穂苅と申します。
このコラムでは、私が PHP8技術者認定初級試験のための公式問題集(PHP8 技術者認定初級試験公式問題集)で学習した内容やポイントを取り上げて解説をしていくものです。
P87~100 のChapter 10 繰り返し(ループ)構文を学習してみました。
繰り返し(ループ)は while と for を理解するべし
繰り返し(ループ)文は、プログラミングにとって欠かせないロジックです。コンピューターがまさに得意なところで、ループ文をうまく使うことで、更にいろいろなことができるようになります。
PHP8のループ文として、覚えておくべき2つの命令についてまとめてみました。
説明 | 参考リンク | |
while文 | whileループは、PHPで最も簡単なタイプのループ。 条件式を評価し、結果が正しい場合(true)にはwhile内の処理を 実行し、再度条件式の評価を行い、trueであれば再度while内の処 理を繰り返す。falseになった場合、while文を抜けて次の処理を行 う。 | https://www.php.net/manual/ja/ |
for文 | for文 for ループは、PHPで最も複雑なループで、汎用性が高い。 繰り返す回数が決まっている場合に使用する。配列とオブジェクト以 外にも、他のデータ型も構文で指定する事ができる。 | https://www.php.net/manual/ja/ |
まずは、while文についてサンプルコードを書いて実行してみました。
<?php
$number = 0;
while ($number !== 6 ) { // 条件式で、変数が6ではないことを確認する = 6だとfalseになり
while文を抜ける
$number = rand(1, 6); // 1~6までの乱数生成
if ($number === 6) {
echo “おめでとうございます!6が出ました! \n”;
} else {
echo “残念でした。{$number} でした。。。\n”;
【出力結果】 ランダムなので、プログラム実行ごとに結果が変わります。※
残念でした。3 でした。。。
残念でした。5 でした。。。
おめでとうございます!6が出ました!
break; を書くことでループを終了させる事もできるのですが、例ではbreak; を記載していません。そのため、ランダムな数を繰り返し評価をして、6が出たらループが終了となります。
このwhile文は、ループを開始する前にループ回数が予測できない場合によく使われます。具体的には、何行あるか分からないファイルの読み込みやランダム処理、非同期処理の結果が揃うまで待つ場合などです。また、無限ループにならないようにロジックを確認することと、いつまでもループが終わらないことがないように、ある程度の時間経過でwhileループを終了させるように書くこともあるようです。
// 例えば、以下のような記述
// 0.01秒過ぎても6が出なければループ終了
if (microtime(true) – $start_time > 0.01) {
echo “時間がかかりすぎたので終了。\n”;
break;
}
続いて、for文です。
基本的な書き方は以下になります。
for (初期値; 条件式; 増減式) {
処理
…
}
条件式がtrue の場合は、{ }の中の処理が実行され、falseの場合はfor文の処理が終了します。
<?php
for ($val = 0; $val <= 10; $val++) {
if ($val == 5) {
echo ‘for文抜けます。’;
break;}
echo $val;
}
?>
【出力結果】
01234for文抜けます。
初期値から条件式を定義し、増減を決めて繰り返し処理をさせる形です。配列をループ処理させる際にも良く使われるのがfor文です。
PHP8技術者認定初級試験で正しいPHPの理解を
今回は、処理でとても大事な繰り返し文を勉強しました。whileとforについての基本や違いが分かりましたでしょうか。油断すると、どっちを使えばいいのかが分からなくなりそうでしたが今回の学習をを踏まえて徐々に慣れていきたいと思いました。
次回以降もPHPで学習した内容をシェアしていきますので、よろしくお願いいたします。
また、PHPの学習やエンジニアになるためのマイルストーンとして、PHP試験はおすすめです。PHP8技術者認定初級試験はPHPを扱うあらゆる方にとって有益な試験になるはずですので、ご興味がある方はぜひチャレンジしてみてください。
試験ページ: PHP8 初級試験