[解答と解説] ループ処理 (for文)
前ページの練習問題「【PHPプログラミング入門講座】[練習問題] ループ処理 (for文)」の解答&解説です。
練習問題が解けたら、このページで答え合わせをしてみましょう!
練習問題1
次のPHPプログラムの[処理A]の部分に、for文を使って配列$listの全要素を最初から順に出力する処理を記述してください。
ただし、各要素は<br>で改行すことにより、1行につき1要素を出力するようにしてください。
<?php $list = [11, 22, 33, 44, 55, 66]; [処理A]
練習問題1の解答と解説
<解答>
<?php $list = [11, 22, 33, 44, 55, 66]; for($i = 0; $i < count($list); $i++) { echo $list[$i] . '<br>'; }
<実行結果>
11
22
33
44
55
66
<解説>
for文で配列を処理する場合の基本的な記述の仕方です。
配列の要素数はcount関数を使って「count($list)」と書きます。
配列の最後の要素のインデックス 番号は、配列の要素数よりも1小さいので「count($list) - 1」です。
配列の最後の要素までループさせるには、for文の継続条件を「$i <= count($list) - 1」と書いても良いのですが、「$i < count($list)」と書くのが慣例です。
for文でインデックス 番号を使う場合の変数は慣例として$iがよく使われます。他の変数名を使っても問題ありません。
練習問題2
次のforeach文を使ったプログラムをfor文を使ったプログラムに書き換えてください。
<?php $names = ['太郎', '次郎', '三郎', '四郎', '五郎']; foreach($names as $name) { echo $name . '<br>'; }
練習問題2の解答と解説
<解答>
<?php $names = ['太郎', '次郎', '三郎', '四郎', '五郎']; for($i = 0; $i < count($names); $i++) { echo $names[$i] . '<br>'; }
<解説>
for文の書き方の説明は前述の「練習問題1」の解説を確認してください。
foreach文とfor文の記述方法の違いを比較して何も見なくても書くことができるようになっておきましょう。
実際に自分で、これらのPHPプログラムを実行して、動作確認してみてください。
インプット(学習)したら、即アウトプット(実践)するのが上達の近道です。
練習問題3
for文を使って、10から1までを出力するPHPプログラムを書いてください。
ただし、各数字は<br>で改行し、1行につき1つの数字を出力してください。
練習問題3の解答と解説
<解答>
<?php for($num = 10; $num >= 1; $num--) { echo $num . '<br>'; }
<実行結果>
10
9
8
7
6
5
4
3
2
1
<解説>
10から始まり1まで処理をするので、for文の継続条件は「$num >= 1」です。
別に「$num > 0」と記述してもOKです。
ただ、問題文には「1まで」と書いているので、1の値が含まれている「$num >= 1」の方が筆者としては良いと思います。
for文で変化させる値は配列のインデックス 番号だけではなく、通常の数値にすることもできます。
数字の値を変化させるループ処理はfor文の記述方法だからできる処理です。foreach文などは配列のループ処理しかできません。
おわりに
お疲れ様でした。
いかがでしたでしょうか?
もし間違えた練習問題がありましたら、前の記事「【PHPプログラミング入門講座】ループ処理 (for文)」戻って読み直し、再度、練習問題にチャレンジしてください。
正解できた人は、おめでとうございます!
次の記事に進んでいきましょう!
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- [練習問題] ループ処理 (for文)
- 現在のページ:[解答と解説] ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理