if 文の {} の数を減らすテクニック

if 文の {} の数を減らすテクニック

if 文の条件をたくさん付け加えていくと、コードが長くなってしまうよね。そういう時に、コードを短くするテクニックを紹介するよ

if 文の中の if 文があるのを、1つにまとめる

tsx
Copied!
// たいりょくが 10 より小さく、かつ、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやす
if (player.たいりょく < 10) {
if (ハック.じかん > 10) {
player.たいりょく += 1;
}
}

↑こういうコードは、こういうコードにおきかえられるよ↓

tsx
Copied!
// たいりょくが 10 より小さく、かつ、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやす
if (player.たいりょく < 10 && ハック.じかん > 10) {
player.たいりょく += 1;
}

5行のコードが3行になったね!でも、その代わり1行目が長くなったね。どちらも意味は同じなので、自分が読みやすいと思う方を使おう。

中身が同じ if 文が2つあるのを、1つにまとめる

tsx
Copied!
// たいりょくが 10 より小さいなら、たいりょくを 1 ふやす
if (player.たいりょく < 10) {
player.たいりょく += 1;
}
// じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやす
if (ハック.じかん > 10) {
player.たいりょく += 1;
}

↑こういうコードは、こういうコードにおきかえられるよ↓

tsx
Copied!
// たいりょくが 10 より小さいか、または、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやす
if (player.たいりょく < 10 || ハック.じかん > 10) {
player.たいりょく += 1;
}

|| は、たてぼうの記号 | を2つ並べたもので、日本語では「または」と読むよ

上級者向け:複雑な条件式を作る

〇〇かつ〇〇、または、〇〇かつ〇〇ならば…。のように、複雑な条件式を書きたいときは、条件式を () で囲むことができるよ

例:

tsx
Copied!
// おかねが 1 より少なくて、かつ、たいりょくが 10 より少なければ、ゲームオーバー
if (player.おかね < 1) {
if (player.たいりょく < 10) {
ハック.ゲームオーバー();
}
}
// おかねが 100 より少なくて、かつ、じかんが 60 を過ぎたら、ゲームオーバー
if (player.おかね < 100) {
if (ハック.じかん > 60) {
ハック.ゲームオーバー();
}
}

↑こういうコードは、こういうコードにおきかえられるよ↓

tsx
Copied!
// おかねが 1 より少なくて、かつ、たいりょくが 10 より少ないか、または
// おかねが 100 より少なくて、かつ、じかんが 60 を過ぎたら、ゲームオーバー
if ((player.おかね < 1 && player.たいりょく < 10) ||
(player.おかね < 100 && ハック.じかん > 60)) {
ハック.ゲームオーバー();
}

() で囲まれた式は、先に計算されるよ(算数と同じルールだね)
{} () はプログラミングでは全く違う意味になるので、気をつけよう

複雑な条件式を考えたいときは、マルバツ表を描いて整理するのがオススメだよ。コンピューターの世界では「カルノー図」とも呼ばれているんだ。興味があれば、調べてみよう!



カルノー図の例。まずは表を埋めてから色を塗る。色を塗るときには、テトリスの「四角」か「棒」のような形で塗る。そうすると、条件式がシンプルになる。
Powered by Helpfeel