シンプルな名簿を作成(2):for文

制御構文を使って名簿を作る

  • 「(1)配列を使う」では、出力に手間のかかる記述をしていましたが、その部分を「繰り返し文」を使って簡潔にします
  • P.82参照
制御構文

分類 命令 意味
分岐 if 条件が正しいかどうかによって、処理を分岐
switch 式の値に応じて、処理を分岐
繰り返し for 指定された回数だけ、処理を繰り返し
while

ある条件が TRUE(正しい)である間だけ、処理を繰り返し

foreach 配列の中身をすべて読み込むまで、処理を繰り返し
移動 break 現在のブロックを脱出
continue 繰り返し処理で、現在の周回をスキップ

for命令

  • 繰り返し構文
  • P.83参照



for (初期化式; ループ継続条件; 増分) {
 …繰り返し実行する処理…
}


《例》

<?php
for ($i = 0; $i < count($data); $i++) {
  print('<li>'.$data[$i].'</li>'."\n");
}
?>


カウンタ変数を初期化する:初期化式

  • forブロックに入った最初のループで、初期化式を1回だけ実行します
  • この場合「$i = 0;」で、変数$i に0をセットします
  • この$i は、ループ回数をカウントするための変数で「カウンタ変数」と呼ばれます


繰り返しを続ける条件を表す:条件式

  • 次に、条件式でループを繰り返すための条件を表します
  • この場合、「$i < count($data);」で、変数$i が配列のサイズよりも小さい間だけループを繰り返します


カウンタ変数を増減させる:増減式

  • 最後に、増減式はループの処理を1回終わるたびに実行されます
  • 一般的には、ここでカウンタ変数を増減させています
  • この場合、「$i++」で、ループするたびにカウンタ変数$i に1を加算しています
  • P.84参照

《完成例》

<?php
$data = array('山田太郎', '横山花子', '田中一郎',
  '山本久美子', '鈴木次郎', '星山裕子', '佐藤勝男');
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP入門教室</title>
</head>
<body>
名簿には<?php print(count($data)); ?>人が登録されています。
<ol>
<?php
for ($i = 0; $i < count($data); $i++) {
  print('<li>'.$data[$i].'</li>');
}
?>
</ol>
</body>
</html>


《実行結果》

配列の中身を逆順に取り出す
<?php
for ($i = count($data) - 1; $i >= 0; $i--) {
  print('<li>'.$data[$i].'</li>'."\n");
}
?>

まとめ

  • スクリプトでの処理の流れを操作するには、制御構文を利用します
  • 制御構文には、for、whileのような繰り返し構文と、if、switchのような分岐構文があります
  • for命令を使うと、ある一定範囲の繰り返し処理をコンパクトに表現できます