関数電卓とは
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
関数電卓すごすぎて、関数電卓なみとか言ってられないわ
三角形の面積を比べよう
底辺が2、高さが√5の三角形Aと底辺が3、高さが√3の三角形Bはどちらの面積が大きいか。
https://edu.casio.jp/cal/cal15/
例題では、三角形Bの面積から三角形Aの面積を引いて、プラスなら三角形Bが大きい、マイナスなら三角形Aが大きい、という判断をします。まず、ここまでをphpスクリプトで書いてみます。
<?php
$a = 2 * sqrt(5) / 2;
$b = 3 * sqrt(3) / 2;
$c = $b - $a;
echo $c;
Code language: PHP (php)
実行すると、
0.36200823385353
Code language: plaintext (plaintext)
結果はプラスなので、三角形Bのほうが大きいことがわかります。
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_1.jpg)
試しに、三角形Aの底辺を2から4に変更して、
<?php
$a = 4 * sqrt(5) / 2;
$b = 3 * sqrt(3) / 2;
$c = $b - $a;
echo $c;
Code language: PHP (php)
実行すると、
-1.8740597436463
Code language: plaintext (plaintext)
結果はマイナスなので、三角形Aのほうが大きいことがわかります。
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_2.jpg)
結果のプラスマイナスを見て判断するのではなく、「Aのほうが大きい」「Bのほうが大きい」と表示したいですね。どうしたらいいでしょうか。
そのためには、if else文を使います。
<?php
$a = 2 * sqrt(5) / 2;
$b = 3 * sqrt(3) / 2;
if ($a <= $b) {
echo "A <= B\n";
} else {
echo "A > B\n";
}
Code language: PHP (php)
実行すると、
A <= B
Code language: plaintext (plaintext)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_3.jpg)
三角形Aの底辺を2から4に変更して、
<?php
$a = 4 * sqrt(5) / 2;
$b = 3 * sqrt(3) / 2;
if ($a <= $b) {
echo "A <= B\n";
} else {
echo "A > B\n";
}
Code language: PHP (php)
実行すると、
A > B
Code language: plaintext (plaintext)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_4.jpg)
if文
if文は、数値を比較して、その結果によって、処理を選択します。
まず、if文だけの形式です。
if (条件式) {
処理1
}
Code language: plaintext (plaintext)
if else文の形式です。
if (条件式) {
処理1
} else {
処理2
}
Code language: plaintext (plaintext)
if elseif else文もあります。
if (条件式) {
処理1
} elseif (条件式) {
処理2
} else {
処理3
}
Code language: plaintext (plaintext)
条件式
条件式とは、$a と $b を比較する式で、式を計算した結果、成立したらTrue、不成立ならFalseという値になります。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/man.png)
全て大文字のTRUE、FALSEと書くとどうなるの?
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
PHPのTrue、Falseは大文字小文字を区別しないから、TRUE、FALSEでもいいのよ。
次の場合、ifの条件式に直接Trueと書くと、"if" と表示されます。
<?php
if (True) {
echo "if";
} else {
echo "else";
}
Code language: PHP (php)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_11.jpg)
次の場合は、ifの条件式に直接Falseと書くと、"else" と表示されます。
<?php
if (False) {
echo "if";
} else {
echo "else";
}
Code language: PHP (php)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_12.jpg)
次に、$a < $b という式について考えます。
$aが0、$bが1の場合、成立するので、$a < $b の値は Trueになります。
$aが2、$bが1の場合、成立しないので、$a < $b の値は Falseになります。
次のスクリプトは、$aが0、$bが1なので、$a < $bが成立して、条件式がTrueになり、ifの処理が実行されて、"a < b" と表示されます。elseの処理は実行されません。
<?php
$a = 0;
$b = 1;
if ($a < $b) {
echo "a < b";
} else {
echo "a >= b";
}
Code language: PHP (php)
a < b
Code language: PHP (php)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_13.jpg)
次のスクリプトは、$aが2、$bが1なので、$a < $bが成立しないので、条件式がFalseになり、ifの処理は実行されず、elseの処理が実行されて、"a >= b" と表示されます。
<?php
$a = 2;
$b = 1;
if ($a < $b) {
echo "a < b";
} else {
echo "a >= b";
}
Code language: PHP (php)
a >= b
Code language: PHP (php)
![](https://www.ninton.co.jp/wordpress/wp-content/uploads/2020/07/php_study_fcalc4_14-1.jpg)
比較演算子
![](https://www.php.net/images/meta-image.png)
数値の比較で使う演算子は、次のとおりです。
例 | 名前 | 結果 |
---|---|---|
$a == $b | 等しい | $a が $b に等しい時に TRUE |
$a != $b | 等しくない | $a が $b に等しくない場合に TRUE |
$a < $b | より少ない | $a が $b より少ない時に TRUE |
$a > $b | より多い | $a が $b より多い時に TRUE |
$a <= $b | より少ないか等しい | $a が $b より少ないか等しい時に TRUE |
$a >= $b | より多いか等しい | $a が $b より多いか等しい時に TRUE |
波カッコとインデント
波カッコ内は、必ずインデントしてください。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
最近のテキストエディターは自動でインデントしてくれるわ
// よくない例
if (条件式) {
処理1
}
Code language: plaintext (plaintext)
波カッコを省略できる場合もありますが、常に波カッコをつけるようにしてください。
// よくない例
if (条件式)
処理1
Code language: plaintext (plaintext)
1行1コマのスゴロク
おおざっぱに言うと、phpスクリプトは、1行1コマのスゴロクに似ています。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/man.png)
プレーヤーは一人だけだね
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
サイコロの目は1しかないわ
次のスクリプトを1行づつ実行していく様子を見ましょう。
<?php
$a = 0;
$b = 1;
if ($a < $b) {
echo "a < b";
} else {
echo "a >= b";
}
Code language: PHP (php)
1行目からスタートします。phpの開始タグです。
1: <?php
Code language: PHP (php)
次の行に進みます。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/man.png)
休む間もなく、次に進むんだね
2行目
2: $a = 0;
Code language: PHP (php)
変数$aに0を代入しました。
次の行に進みます。
3行目
3: $b = 1;
Code language: PHP (php)
変数$bに1を代入しました。
次の行に進みます。
4行目
4: if ($a < $b) {
Code language: PHP (php)
$a < $b を計算すると、0 < 1 なので、Trueです。
ifの波カッコ内の最初の行、5行目へ移動します。
5行目
5: echo "a < b";
Code language: PHP (php)
"a < b"を表示しました。
次の行に進みます。
6行目
6: } else {
Code language: PHP (php)
ifの波カッコが閉じたので、ifの処理部はここで終わりです。
elseの波カッコ閉じの次の行、9行目へ移動します。
9行目はないので、phpスクリプトを終了します。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
elseを実行する場合も説明してほしいわ
もうひとつのスクリプトを1行づつ実行していく様子を見ましょう。
<?php
$a = 2;
$b = 1;
if ($a < $b) {
echo "a < b";
} else {
echo "a >= b";
}
Code language: PHP (php)
1行目からスタートします。phpの開始タグです。
1: <?php
Code language: PHP (php)
次の行に進みます。
2行目
2: $a = 2;
Code language: PHP (php)
変数$aに2を代入しました。
次の行に進みます。
3行目
3: $b = 1;
Code language: PHP (php)
変数$bに1を代入しました。
次の行に進みます。
4行目
4: if ($a < $b) {
Code language: PHP (php)
$a < $b を計算すると、2 < 1 なので、Falseです。
elseの波カッコ内の最初の行、7行目へ移動します。
7行目
7: echo "a >= b";
Code language: PHP (php)
"a >= b"を表示しました。
elseの波カッコ閉じの次の行、9行目へ移動します。
9行目はないので、phpスクリプトを終了します。
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/man.png)
行ごとに見ていくなんて面倒だね
![](https://www.ninton.co.jp/wordpress/wp-content/themes/cocoon-master/images/woman.png)
デバッグの基本よ、地味な作業が多いのよ