phpの制御構文(1)if文、switch文
制御構文は、上から下へ流れる処理を途中で分岐させたり、繰り返したりすることでより複雑な処理や効率的な処理を実現することができます。一般的にプログラムの流れは「順次」、「分岐」、「繰り返し」の処理になります。
順次 | 上から下に順番に演算していく |
---|---|
分岐 | 条件が揃えば演算する |
繰り返し | 条件が揃うまで処理を繰り返すく |
今回は、この3つの処理について「順次」と「分岐」についてPHPの構文を使用して具体的に説明します。
phpの順次
上から順番にプログラムを実行します。
①変数「a」を初期化して3を代入する
$a = 3;
②変数「a」に3を乗じた値を変数「b」に入れる。
$b = $a * 3;
③変数「a」の値に4を加算する
$a = $a + 3;
④変数「a」と「b」を乗算してその答えを画面に表示する。
echo ($a * $b);
①~④の順番に処理を実行します。
phpの分岐(1) if文
条件による判断を設定し「TRUE(真)」か「FALSE(偽)」で判断し、実行します。
PHPプログラムでは、分岐構文にif文を使います。
もし値が「真」なら処理1を実行し「真」でなければ(偽)なら処理2を実行する。
if(判断){ 処理1 }
else{ 処理2 }
具体的にPHPの構文で記述します。
①変数「a」を初期化して 20*3 を代入する
$a = 20 * 3;
②もし$aが60なら画面に「aの値は、60です」を表示し、違っていれば「aの値は、60ではありません」と表示します
1 2 |
if($a == 60){ echo "aの値は、60です"; } else{ echo "aの値は、60ではありません"; } |
if文は、「if」「else」以外に「else if」もあります。
if(判断1){ 処理1の実行 }
else if(判断2){ 処理2の実行 }
else if(判断3){ 処理3の実行}
else { 処理4の実行 }
条件分岐は、上から判断して正しかった最初の処理のみ実行します。後の判断と処理は実行しません。上記では、判断1が「真」なら判断2,3は判断されませんし処理2,3,4も実行されません。
条件文に使用する関係演算子を以下に挙げます
演算子 | 例 | 意味 |
---|---|---|
< | a < b | a は b よりも小さい |
> | a > b | a は b よりも大きい |
<= | a <= b | a は b 以下 |
>= | a >= b | a は b 以上 |
== | a == b | a と b は等しい |
!= | a != b | a は b は等しくない |
if文では、関係演算子と論理演算子が合わせて使用されることもあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$a = 30; $b = 70; if($a < 20 && $b < 20){ echo "aとbの値は、どちらも20より小さい"; } else if($a > 80 || $b >80){ echo "aかbのいずれかの値は、20より大きい"; } else if(($a+$b) == 100){ echo "aとbの和は、100である"; } else{ echo "全ての条件に適合しませんでした"; } |
phpの分岐(2) switch文
switch文では式の値を評価し、caseの後に記述された値と順次比較していきます。もし一致する値があった場合にはその後に記述された処理を順次処理していきbreakに達したら終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
switch (式) { case定数式1: 処理1; break; case定数式2: 処理2; break; case定数式3: 処理3; break; default: その他の処理; } |
式の値が
定数式1 と等しければ、処理1 実行
定数式2 と等しければ、処理2 実行
定数式3 と等しければ、処理3 実行
それ以外ならば、その処理実行
途中でbreak文が出てきたらswitch文を抜ける。もしbreakが無ければそのまま以下の処理を実行する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$a = 2; switch (a) { case 1: echo "値は、1です"; break; case 2: echo "値は、2です"; break; case 3: echo "値は、3です"; break; default: echo "値は、その他です"; break; } |