if 文の {} の数を減らすテクニック
if 文の条件をたくさん付け加えていくと、コードが長くなってしまうよね。そういう時に、コードを短くするテクニックを紹介するよ
if 文の中の if 文があるのを、1つにまとめる
tsx// たいりょくが 10 より小さく、かつ、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやすif (player.たいりょく < 10) { if (ハック.じかん > 10) { player.たいりょく += 1; }}↑こういうコードは、こういうコードにおきかえられるよ↓
tsx// たいりょくが 10 より小さく、かつ、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやすif (player.たいりょく < 10 && ハック.じかん > 10) { player.たいりょく += 1;}5行のコードが3行になったね!でも、その代わり1行目が長くなったね。どちらも意味は同じなので、自分が読みやすいと思う方を使おう。
中身が同じ if 文が2つあるのを、1つにまとめる
tsx// たいりょくが 10 より小さいなら、たいりょくを 1 ふやすif (player.たいりょく < 10) { player.たいりょく += 1;}// じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやすif (ハック.じかん > 10) { player.たいりょく += 1;}↑こういうコードは、こういうコードにおきかえられるよ↓
tsx// たいりょくが 10 より小さいか、または、じかんが 10 秒よりもたっているなら、たいりょくを 1 ふやすif (player.たいりょく < 10 || ハック.じかん > 10) { player.たいりょく += 1;} || は、たてぼうの記号 | を2つ並べたもので、日本語では「または」と読むよ上級者向け:複雑な条件式を作る
〇〇かつ〇〇、または、〇〇かつ〇〇ならば…。のように、複雑な条件式を書きたいときは、条件式を
() で囲むことができるよ例:
tsx// おかねが 1 より少なくて、かつ、たいりょくが 10 より少なければ、ゲームオーバーif (player.おかね < 1) { if (player.たいりょく < 10) { ハック.ゲームオーバー(); }}// おかねが 100 より少なくて、かつ、じかんが 60 を過ぎたら、ゲームオーバーif (player.おかね < 100) { if (ハック.じかん > 60) { ハック.ゲームオーバー(); }}↑こういうコードは、こういうコードにおきかえられるよ↓
tsx// おかねが 1 より少なくて、かつ、たいりょくが 10 より少ないか、または// おかねが 100 より少なくて、かつ、じかんが 60 を過ぎたら、ゲームオーバーif ((player.おかね < 1 && player.たいりょく < 10) || (player.おかね < 100 && ハック.じかん > 60)) { ハック.ゲームオーバー();} () で囲まれた式は、先に計算されるよ(算数と同じルールだね) {} と () はプログラミングでは全く違う意味になるので、気をつけよう複雑な条件式を考えたいときは、マルバツ表を描いて整理するのがオススメだよ。コンピューターの世界では「カルノー図」とも呼ばれているんだ。興味があれば、調べてみよう!
カルノー図の例。まずは表を埋めてから色を塗る。色を塗るときには、テトリスの「四角」か「棒」のような形で塗る。そうすると、条件式がシンプルになる。