Tips

2012.12.05

PHP for文 【初級編 第31回】

PHP for文 【初級編 第31回】

for文

前回は switch文について記載しました。
今回は for文について記載していきたいと思います。

for文について

同じような内容の処理を毎回記述するのは大変ですが、for文を使用すると簡潔に記述することができます。
for文はループと呼ばれる繰り返しの処理を記述する際に使用します。
例えば 1 を毎回 1 ずつ増やして 10に達するまで処理を繰り返すといったことができます。

for文に記述のしかた

for文は下記のように、for開始時に1度だけおこなう処理(初期化)、繰り返し条件、処理が終わる度に行う処理(増減処理) のように記述して、
その後ろに実際の処理内容を記述します。

for(初期化; 繰り返し条件; 増減処理){
  処理内容;
}

for文のサンプル

以下では、$hensuu の値に最初 1 を代入し、その後処理をするたびに値を 1 ずつ増やしていき、10 になったらループを抜けるサンプルです。

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

結果は以下のように、1 から 10 の数字が表示されます。
ブラウザ確認画像

初期化の値を変更

初期化の値だけ変更してみます。

<?php
 for($hensuu = 5; $hensuu <= 10; $hensuu++){
 echo "$hensuu<br>";
 }
?>

すると、5 から 10 が表示されました。
ブラウザ確認画像

増減値を変更

1回ループの処理が終わったら $hensuu の値を 2 ずつ増やすようにしてみます。

<?php
 for($hensuu = 1; $hensuu <= 10; $hensuu += 2){
   echo "$hensuu<br>";
 }
?>

結果は以下のようになります。
ブラウザ確認画像

繰り返し条件を変更

繰り返しの条件を変更してみます。

<?php
 for($hensuu = 1; $hensuu <= 15; $hensuu++){
   echo "$hensuu<br>";
 }
?>

結果は以下のようになります。
ブラウザ確認画像

処理を複数記述する

処理を複数記述したい場合は , で分けて複数記述することができます。

<?php
 for($a = 1, $b = 10; $a <= 10; $a++, $b--){
   echo "a == $a, b == $b<br>";
 }
?>

結果は以下のようになります。
ブラウザ確認画像

処理を省略する

下記では 開始時の初期化の処理と値を増減させる処理を for() の中で省略しています。

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

結果は以下のようになります。
ブラウザ確認画像

条件を省略した場合は、無限ループをしてしまうので if文と break を使用して forを抜けるようにします。

繰り返し条件を複数記述する場合の注意点

下記のように繰り返し条件を , で分けて複数記述しても、後半の $a < 10 だけが比較されて $a < 5 は比較されないようです。
ためしに $a < 5 を $a < 15 に変えてみても結果は変わりませんでした。

<?php
 for($a = 1; $a < 5, $a < 10; $a++){
 echo "a == $a<br>";
 }
?>

結果は以下のようになります。
ブラウザ確認画像

また and や or を使用した場合の挙動も反対になっていました。

<?php
 for($a = 1, $b = 1; $a <= 5 and $b <= 10; $a++, $b++){
 echo "a == $a, b == $b<br>";
 }

ブラウザ確認画像

<?php
 for($a = 1, $b = 1; $b <= 10 or $a <= 5; $a++, $b++){
 echo "a == $a, b == $b<br>";
 }
?>

ブラウザ確認画像

新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search