見出し画像

条件分岐 if文

「条件分岐の冒険: プログラミングの旅」

昔々、プログラミングの国には、条件分岐という特別な力がありました。冒険者の$xは、その力を手に入れるべく旅に出ました。

最初の試練では、if文の魔法を学びました。条件が真ならば、「$xは10より大きい」という言葉が魔法の力で現れました。真偽値の秘密が明らかになり、条件が成り立つ時の魔法を知りました。

次に$xは、「else」という魔法の存在を知りました。条件が偽の場合にのみ、"xは30ではありません"という言葉が魔法の力で表れました。ifが偽であれば、elseが導かれることを学びました。

その後、elseifの魔法を手に入れました。多くの道が交わる場所で、条件分岐を試みました。最初に合致した条件が魔法を起動し、他の条件は無視されました。

更なる旅で、論理演算子&&と||の力を手に入れました。&&は条件が全て真の場合に魔法が発動し、||はどれか一つ以上の条件が真である場合に魔法が発動しました。

そして、「!」という否定の魔法を学び、また3の倍数を判定する方法も身につけました。冒険者$xは、この特別な魔法を使って、プログラミングの世界で様々な冒険を繰り広げました。

ChatGpt 例え話


制御構造

制御構造は、プログラムの実行フローを制御するための構造や命令のことです。プログラミング言語において、特定の条件に基づいて命令の実行を決定したり、ループを実行したり、あるいは他のプログラムのフローを制御するための仕組みを指します。条件文、ループ文、分岐文などがその例で、それらを組み合わせてプログラムの実行順序や条件に合わせた動作を実現します。制御構造はプログラムの論理的な流れを決める重要な要素です。



条件分岐 
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)) {
//条件の否定(truefalseが逆になる)



比較演算子
 3の倍数

$x % 3 == 03の倍数であるということは、3で割ったときの余りが0、すなわち「$x % 3 == 0」ということです。
  • $x % 3: これは $x を3で割った余りを計算します。

  • ==  これは等しいかどうかを比較する演算子で、
    $x % 3 の計算結果が 0 と等しい場合に条件が成り立ちます。

=は代入演算子、==は比較演算子

$a == 1は、PHPの比較演算子の1つで、$aが1と等しい場合にtrueを返します。==は、等しいかどうかを比較するために使用されます。

比較演算子


この記事が気に入ったらサポートをしてみませんか?