if 文の基本
このレッスンで分かること
if (条件) { ... } else { ... }で処理を 2 つに分けられます- 条件のカッコに書くのは、
trueかfalseになる式です
誰が来ても同じことしか言わない
ここまで書いてきたプログラムは、上から下へ一直線に進むだけでした。何を渡しても、返ってくる言葉はいつも同じです。ですが山田 太郎さんのプロフィールサイトを考えると、作品がまだ 1 つのときと 10 個並んだときとで、出したい言葉は違うはずです。この「もし〜なら」を書くための道具が if 文です。
JavaScript
const views = 120;
if (views >= 100) {
console.log("たくさん見られています");
} else {
console.log("これから伸ばしましょう");
}
// => たくさん見られています丸カッコの中の条件が true のときだけ、直後の波カッコの中が動きます。false なら else の波カッコの中が動きます。else は省略できますが、書いておけば「必ずどちらか一方は動く」ことが保証されます。
このコースの課題は関数の戻り値で採点されるので、波カッコの中で return する形をよく使います。
JavaScript
function bioComment(length) {
if (length >= 50) {
return "十分な長さです";
} else {
return "もう少し書きましょう";
}
}return が動いた時点で関数は終わります。ですから 2 つの return のうち、実際に値を返すのは必ず片方だけです。
「以上」と「より大きい」は別物
if でいちばん間違えるのは、ちょうど境目の値です。「100 以上」なら >=、「100 を超えたら」なら > を使います。日本語の 1 文字の違いが、そのまま記号の違いになります。
| 書き方 | 意味 | views が 100 のとき |
|---|---|---|
views > 100 | 100 より大きい。100 を含まない | false |
views >= 100 | 100 以上。100 を含む | true |
views < 100 | 100 未満。100 を含まない | false |
views <= 100 | 100 以下。100 を含む | true |
この境目の値を境界値と呼びます。バグの大半はここに潜んでいるので、書き終えたら境界値そのものと、その 1 つ手前を手で流して確かめてください。
処理が 1 文だけなら波カッコを省略して書けます。ただし、あとから 1 行足したときに、足した行が条件と関係なく毎回動く事故が起きます。慣れるまでは常に波カッコを書いてください。
よくある間違い
=を 1 つしか書かない — 比較のつもりが代入になり、条件がいつも成立してしまいます
JavaScript
// NG。views に 100 を入れてしまう
if (views = 100) { }
// OK
if (views === 100) { }- 片方の道で
returnを書き忘れる —elseの側を書かずに終えると、条件を満たさなかったときにundefinedが返ります。どちらの道でも値を返しているか、書き終えたら目で追ってください
要件
- 関数名は worksBadge、引数は作品数を表す数値 count の 1 つ
- count が 3 以上のとき、文字列 "ポートフォリオ公開レベル" を返す
- count が 3 未満のとき、文字列 "制作中" を返す
- if と else を使い、どちらの場合も必ず値を返す
入出力例
worksBadge(0) → "制作中"
worksBadge(2) → "制作中"
worksBadge(3) → "ポートフォリオ公開レベル"
worksBadge(5) → "ポートフォリオ公開レベル"ヒント
編集 ゆめさく編集部