条件分岐 if文
制御構造
制御構造は、プログラムの実行フローを制御するための構造や命令のことです。プログラミング言語において、特定の条件に基づいて命令の実行を決定したり、ループを実行したり、あるいは他のプログラムのフローを制御するための仕組みを指します。条件文、ループ文、分岐文などがその例で、それらを組み合わせてプログラムの実行順序や条件に合わせた動作を実現します。制御構造はプログラムの論理的な流れを決める重要な要素です。
条件分岐
if文
if文は、条件が真の場合に特定のコードを実行するプログラムの制御構造です。
$x = 20;
if ($× > 10) {
//条件式(成り立つ)ので、処理が実行される。
echo'$xは10より大きい';
}
結果:
$xは10より大きい
if文を使うと、条件に応じて処理を分岐することができます。
条件が成り立つ場合、{ }の中の処理が実行されます。
条件が成り立たない場合は処理が実行されません。
if ($× > 10) {
条件式の中で数値と文字列を混在させることは避けます。条件式では数値同士の比較や、文字列同士の比較など、同じ型同士の比較を行うのが一般的です。
真偽値
trueとfalse
trueとfalseは真偽値と呼ばれます。真偽値は文字列や数値といったデータの種類の1つです。真偽値はtrueとfalseの2つしかありません。if文は、条件式がtrueの場合if文の中身が実行され、falseの場合は実行されません。
if(true){
//必ず、ifの中が実行される。
}
文字列の真偽値は常にtrue:
例1:
$myString = "some text";
if ($myString) {
echo "This string is not empty.\n";
} else {
echo "This string is empty or evaluates to false.\n";
}
//出力: This string is not empty.
PHPでは、文字列が空かどうかを判断することはできますが、文字列の内容自体が false かどうかを直接的に判断することはできません。非空の文字列は条件式として true と評価されますが、その内容が false かどうかを直接判断することはできません。上記のコードでは、$myString が空でない文字列を持っているため、if 文の条件式は true と評価されます。しかし、この文字列の内容自体が false かどうかについては直接的には判断できません。文字列が空でなければ、条件式としては true として常に扱われます。
文字列の真偽値の偽を出力:
例1:
$myString = "some text"; // 最初の文字列
// 新しい文字列に上書き。空文字列は空で偽を出力(スペースは空でない)
$myString = "";
if ($myString) {
echo "This string is not empty.\n";
} else {
echo "This string is empty or evaluates to false.\n";
}
//出力: This string is empty or evaluates to false.
上記のようにすることで、$myString は最初に代入された値 "some text" ではなく、後に代入された値 "false" となり、条件式は true ではなく false と評価されます。PHPでは空文字列は空(スペースは空でない)として扱われます。そのため、条件文 if ($myString) は偽と評価され、偽が出力されます。
else
$x = 20;
if ($× == 30) {
//条件式(false)で
echo '$×は30です';←処理は実行されない。
} else {
echo'$xは30ではありません';←一処理が実行される
//結果:$xは30ではありません
ifと組み合わせてelseを使うと、「もしも〜だったら・・・、そうでなければ・・・」といった条件分岐が可能になります。if文の条件が「false」であった場合、elseの中の処理が実行されます。
elseif
$x = 20;
if ($× > 30) {
echo'$xは30より大きい'; ←falseなので実行されない
} elseif ($× >= 20) {
echo'$xは30以下20以上'; ←trueなので実行される
} else {
echo'$xは20より小さい'; ←すでに当てはまる条件があった為、実行されない
}
//結果:$xは30以下20以上
elseifを用いることで、「もしも〜だったら・・・、それとも〜であれば・・・、いずれでもなければ・・・」といった多岐分岐が可能になります。elseifは必要な分岐の数だけ並べることができますが、複数の条件に合致した場合、実行されるのは最初に合致したブロックだけとなります。
論理演算子
&& と ||
if ($× > 10 && $x < 30) {
「&&」と「||」は論理演算子と呼ばれ、複数の条件を1つにまとめる時に使います。
&&(かつ)は左右の式がともに「true」の場合、全体も「true」になります。
||(または)は左右の式のどちらか、または両方が「true」の場合、全体も「true」になります。
「!」も論理演算子の1つ
(条件の否定)
if (!($x == 30)) {
//条件の否定(trueとfalseが逆になる)
比較演算子
3の倍数
$x % 3 == 0
※ 3の倍数であるということは、3で割ったときの余りが0、すなわち「$x % 3 == 0」ということです。
$x % 3: これは $x を3で割った余りを計算します。
== これは等しいかどうかを比較する演算子で、
$x % 3 の計算結果が 0 と等しい場合に条件が成り立ちます。
この記事が気に入ったらサポートをしてみませんか?