if文とは?
if文
もし〇〇だったら、これをする。
そうじゃなかったら、こっちをする。
簡単に言うとこれの事ですね。
具体例
もし雨が降っていたら、傘を持っていく。
降っていなかったら、傘は持っていかない。
if文は、ひたすらこれをやるだけです。
演算子について
具体的にif文を書いていく前に、演算子について知っておくと理解しやすいです。
「演算子」と聞くと何やら難しそうですが、
算数とかで出てくる「<, >, <=」とかの記号とほぼ同じ意味です。
等しい意味のイコール(===)は3つ使う!
「テストの点数($score)が100点ならOK!」
これをプログラミングの条件式で表すとこうなります。
$socre === 100
PHPではイコールを表すとき、「===」と3つ使います。
(イコールが一つだったら、$scoreの変数に100定義したことになってしまいますよね)
数値の比較
「テストの点数($score)が70点以上ならOK!」
これをプログラミングの条件式で表すとこうなります。
$socre >= 70
$scoreと70という数字を比べて、$scoreの中に入っている数値の方が大きい
と言う条件ですね。
ちなみに、「以上」と言うのは「その数を含む」と言う意味なので「=」が必要になります。
つまり、
$socre > 70
このように書いた場合、70は含まないので70点の人は不合格になります。
if文の書き方
基本形
ifは英語で「もし〜なら」と言う意味です。
$scoreが100点かどうか判定するコードは次のようになります。
<?php
$score = 100;
if($score === 100) {
echo '100点です!';
}
?>
$scoreと100が一致したら「100点です!」と出力されるif文です。
- 後で$scoreと100を比べるので、先に$scoreに100を入れておきます
- まず「if()」と書く
- 「()」の中には「条件」を書く→今回だと条件は「$scoreが100と一致すること」
- ③の条件が正しければ、「{}」の中に入る
- 「{}」の中には「処理」を書く→今回だと処理は「100点です!」と表示させたい
- つまり、③で作った条件が正しい時だけ処理が実行される
否定系
否定の場合は「===」に「!==」と先頭にビックリマークをつけます。
<?php
$score = 100;
if($score !== 100) {
echo '100点です!';
}
?>
$scoreが100でなければ、OK。
「{}」の中の処理に入ります。
else
「それ以外の全て」を意味する「else」というものがあります。
先ほどのコードに「else」の処理を追加すると、こんな感じです。
<?php
$score = 100;
if($score === 100) {
echo '100点です!';
} else {
echo '残念...';
}
?>
$scoreが100以外全て(10, 25, 99など…)の場合、「残念…」と出力される
よくあるif文のパターン
実際によく使うif文の書き方を紹介しておきます。
偶数か奇数の判定
<?php
$score = 100;
if($score % 2 === 0) {
echo '偶数です';
} else {
echo '奇数です';
}
?>
「%」を使うと割った余りを求めることができます。
100を2で割った結果、50余り0となるので、余りは「0」です。
「$score % 2 === 0」は、まさにその事を言っています。
余りが0ということは、つまり偶数ということになります。
年齢が20代かどうかの判定
<?php
$age = 10;
if($age >= 20 && $age < 30) {
echo '20代です';
} else {
echo '20代ではありません';
}
?>
「年齢が20代かどうか」これを言い換えると、
「$ageが20〜29の間であること」
↓
「$ageは20以上」かつ「$ageと30を比べたら30の方が大きい」
↓
$age >= 20 && $age < 30
(〇〇かつ△△の「かつ」にあたる部分は「&&」で表現します)
練習問題
問題
<問題1>
次の条件で出力結果が「合格」となるように書いてください。
変数score:80
条件:$scoreが70以上なら「合格」。それ以外は「不合格」が出力されること
出力結果:「合格」
<問題2>
次の条件で出力結果が「ログイン成功です」となるように書いてください。
変数name: テスト太郎
変数password:test123
条件:$nameが「テスト太郎」かつ、$passwordが「test123」と一致した場合「ログイン成功です」と出力される。それ以外は「ログインできませんでした」が出力されること
出力:「ログイン成功です」
回答
<回答1>
<?php
$socre = 80;
if($score >= 70) {
echo '合格';
} else {
echo '不合格';
}
?>
<回答2>
<?php
$name = 'テスト太郎';
$password = 'test123';
if($name === 'テスト太郎' && $password === 'test123') {
echo 'ログイン成功です';
} else {
echo 'ログインできませんでした';
}
?>
まとめ
- if(条件) {処理}
- 条件が正しい時だけ、処理が実行される
- else:それ以外の全て
- イコールを表すときは「===」と3つ使う
- 「%」を使うと余りを求められる
- 複数条件を使うときは「&&」で繋ぐ