前項の電卓は掛け算しかできない電卓でしたね。
入力側では、足し算とか、割り算とか選択していたのに、
掛け算しかできないプログラムでした。
これは、受け取ったPHPのプログラムが、入力側の何をしたいかを、
プログラムで判断していないからです。
強制的に掛け算にしていました。
数値はそのまま計算に使えますが
(本来は文字列を数値型に変更は必要ですが)、
+,-,*,/のこの文字列は直接使えなくて、
プログラムで判別しなければいけないのです。
数値のように、そのままの文字では使えないのです。
それを実現するのが、条件分岐というものです。
スポンサーリンク
if文
”もし、caの値が+だったら、数値1と数値2を足しなさい。
そうでなかったら、もし、caの値がーだったら、
数値1から数値2を引きなさい・・・・・"
となるわけです。
次のPHPコードを入力してください。
また 前回の"dentaku1.html"の
7行目 <form action="./dentaku1.php" method="post">
の"dentaku1"を"dentaku2"に変更して下さい。
そして、
”http://localhost/phptest/dentaku1.html”
を実行して下さい。
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>dentaku2.html</title>
</head>
<body>
<?php
$numb1=$_POST["num1"];
$numb2=$_POST["num2"];
$ca=$_POST["ca"];
if($ca == "+"){
echo $numb1.$ca.$numb2."=".($numb1 + $numb2)."<br>";
}else if($ca == "-"){
echo $numb1.$ca.$numb2."=".($numb1 - $numb2)."<br>";
}else if($ca == "*"){
echo $numb1.$ca.$numb2."=".($numb1 * $numb2)."<br>";
}else if($ca == "/"){
echo $numb1.$ca.$numb2."=".($numb1 / $numb2)."<br>";
}
?>
</body>
</html>
case1:
if(式){
処理
}
式の結果がTRUEだったら{}の中の処理を実行します。
FALSEだったら{}中の処理をしないで次に進みます。
case2:
if(式){
処理a
}else{
処理b
}
式の結果がTRUEだったら最初の処理aを実行します。
FALSEだったら処理aを実施しないで、処理bを実施し、
次に進みます。
case3:
if(式1){
処理a
}else if(式2){
処理b
}←①
式1の結果がTRUEだったら処理aを実施し、
最後の}(①)を抜けて次に進みます。
式1の結果がFALSEだったら、次のif文の式2を実行し、
式2の結果がTRUEだったら、処理bを実行し、
FLASEだったら、最後の}①を抜けて次に進みます。
else ifは何段も使うことができます。
上記のコードはこのcase3を使用してます。
無事電卓になってませんか?