【1-6】ループを使って簡単プログラムを実装してみよう!

ループはその名の通り「同じことを繰り返す」という技になります。

ループにはまずは必須の2種類の書き方のを見ていきましょう!

for文

最初に一言で特徴をいうと、
「指定した回数をループする時に便利」なものです。

1〜10までの数字をfor文というループを使って出力してみます。

<?php
    for($i = 1; $i <= 10; $i++) {
        echo $i;
    }
?>

for文は「($i = 1; $i <= 10; $i++)」の部分を3つに分けられます。

for文の構造

  • 左の「$i = 1;」:$iに1を入れておく
  • 真ん中の「$i <=10;」:ループが回る条件は$i が10より小さいという意味
  • 右の「$++」:ループが回る度に $iに1が足されていく(インクリメント)
  • 真ん中の条件を満たすと {} の中の処理に入る(今回はただ出力するだけ)

真ん中の「$i <= 10」という条件を満たす限りループし続けます。

練習問題

早速ですが、ちょっと練習してみましょう。

1〜10の数で偶数のものだけを出力してください。

考え方

  • 「1〜10」を出力→ ($i = 1; $i <= 10; $i++)というfor文
  • 「偶数だけ出力」→if($i % 2 === 0)という偶数を判定するif文を組み合わせる

<解答>

<?php
    for($i = 1; $i <= 10; $i++) {
       if($i % 2 === 0) {
           echo $i;
       }
    }
?>

echoで出力すると、改行されずに次のように表示されます。

246810

while文

while文の特徴は、
「指定した条件を満たす間ループする」というもの
for文と同じように1〜10までの数字をwhile文を使って出力してみましょう

<?php
    $i = 1;
    while($i <= 10) {
        echo $i;
        $i++;
    }
?>

for文とだいぶ形が違いますが、まずはどのような構造になっているか確認しておきましょう。

while文の構造

  • whileが始まるより上の行で、$iに1を入れておく
  • ($i <= 10)という条件を満たすなら{}の中の処理に入る
  • $iを表示した後に、$iに1をプラスする←これをしないと、$iが1のまま変化せず($i <= 10)という条件を永遠に満たし続けることになります。いわゆる無限ループですね

配列、ループ、if文を組み合わせてみる

プログラミングは「配列」「if文」「ループ」ができると基本的には何でも作れると言われます。

実際に組み合わせて簡単なプログラムを作ってみましょう。

不正な値の入力値チェック!

申し込みのあった年齢が正常な値かどうかチェックする処理

これだけ聞くと難しそうですが、実は

  • 配列
  • ループ
  • if文

この知識の組み合わせだけで作ることができます。

考え方>

  • 申し込みがあった年齢を$agesという配列に入れておきます
  • 今回「不正な値」というのは「0歳〜120歳以外の全ての値」ということにしておきます
    「-22歳, 147歳, -10歳」は年齢として不正な値です
  • 値が「0歳〜120歳の値」であれば出力。そうでなければ何もしないという条件のif文を作ります

コードで書くとこんな感じになります。

<?php
    $ages = [18, 24, 30, -22, 27, 147, 100, -10];
    echo '申し込みがあったのは以下の年齢です';
    for($i = 0; $i < count($ages); $i++) {
        if ($ages[$i] > 0 && $ages[$i] <= 120) {
            echo '<br>';
            echo $ages[$i] . '歳です';
        }
    }
?>

<出力結果

申し込みがあったのは以下の年齢です
18歳です
24歳です
30歳です
27歳です
100歳です

書き方を詳しく解説

今回ループをして欲しい箇所は、
「年齢を出力する箇所」です

しかし、そのままだと無条件で全ての年齢がechoで画面表示されてしまうので、
if文で正しいデータのみ処理をさせるように書きます。

for文で全件分ループしながら、
if文の条件判定を突破したものだけが処理の対象になる」というイメージになります。

新しく出てきた知識が、2つあるのでそれも解説していきます。

一つ目:count($ages)

突然「count」というものが出てきました。
これは配列$agesの個数を数えてくれる関数です。

$agesの中には「18, 24, 30, -22, 27, 147, 100, -10」の全部で8つ入っています。
count関数で取得した8という数字を「何回ループするかという条件に利用しています

このcountを使うことで、配列の個数が増えたり減ったりした時も自動で変化してくれます。

二つ目:'<br>’

‘<br>’は、HTMLの改行を意味するものです。

PHPで「HTMLの改行」をechoを使って表現するという考えになります

まとめ

  • for文はループする回数を条件にして使用する
  • while文は条件を満たす間ずっとループする(←回数に限らない)
  • count関数を使うと配列の個数をカウントしてくれる
  • ‘<br>’をechoで出力すると改行されて表示される

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA