IT・テクノロジー

【オウル先生の基礎講座】Vol.2「条件分岐を理解しよう」

progmraming

「もし〇〇なら××する」をコードで表現する方法!

先生、条件分岐って難しそうだなぁ…
フォックン
フォックン
フォックン、全然難しくないよ!日常生活でも常に条件分岐を使ってるんだ。例えば「雨が降ったら傘を持つ」とか「お腹が空いたらご飯を食べる」とか😊
オウル先生
オウル先生

条件分岐とは

条件分岐とは、特定の条件に応じて処理を分けることを指します。プログラミングの世界では、この考え方を実装するために主に以下の2種類の構文を使います:

  1. if文:基本的な条件判断に使用
  2. switch文:複数の選択肢を整理するのに便利
なるほど!日常の「もし〜なら」をコードで書けるんだね!
フォックン
フォックン

if文の基本構造

if文の基本形は以下の通りです:

if (条件式) {
  // 条件が成立した場合の処理
}

より複雑な条件分岐として、else節やelse if節も使えます:

if (条件1) {
  // 条件1が成立した場合の処理
} else if (条件2) {
  // 条件2が成立した場合の処理
} else {
  // どの条件も満たさない場合の処理
}

実践的な例

const weather = "rain";

if (weather === "rain") {
  console.log("傘を持って出かけましょう!");
} else if (weather === "snow") {
  console.log("コートを着て出かけましょう!");
} else {
  console.log("天気が良いですね!");
}
このコードを見てごらん。weather変数の値に応じて異なるメッセージが表示されるんだよ。
オウル先生
オウル先生

条件式の書き方

条件式には比較演算子を使います:

演算子意味
===厳密等価a === b
!==厳密不等価a !== b
==緩やかな等価a == b
!=緩やかな不等価a != b
>より大きいa > b
<より小さいa < b
>=以上a >= b
<=以下a <= b
=====は何が違うの?
フォックン
フォックン
いい質問だね!===は値と型の両方を厳密にチェックするのに対し、==は型変換を行ってから比較するんだ。安全性を考えると===を使う方が推奨されているよ。
オウル先生
オウル先生
// 型変換の例
5 == "5"  // true(自動的に型変換される)
5 === "5" // false(型も一致している必要がある)

複合条件の作り方

複数の条件を組み合わせるには論理演算子を使います:

演算子意味
&&AND(かつ)a && b
||OR(または)a || b
!NOT(否定)!a
const age = 25;
const hasLicense = true;

if (age >= 18 && hasLicense) {
  console.log("車を運転できます");
} else {
  console.log("運転はできません");
}

switch文の使い方

switch文は、同じ変数に対して複数の値を比較する場合に便利です:

const dayOfWeek = 3;

switch (dayOfWeek) {
  case 1:
    console.log("月曜日");
    break;
  case 2:
    console.log("火曜日");
    break;
  case 3:
    console.log("水曜日");
    break;
  case 4:
    console.log("木曜日");
    break;
  case 5:
    console.log("金曜日");
    break;
  case 6:
    console.log("土曜日");
    break;
  case 7:
    console.log("日曜日");
    break;
  default:
    console.log("無効な値です");
}
break文を書き忘れると、次のcaseの処理も実行されちゃうから注意してね!これをフォールスルーと呼ぶんだ。
オウル先生
オウル先生

if文とswitch文の使い分け

if文を使うべきケース:

  • 条件が範囲(>=, <=など)を含む場合
  • 条件式が複雑(複数の変数を組み合わせる)な場合
  • 条件が少ない(2〜3個程度)場合

switch文を使うべきケース:

  • 同じ変数の値で分岐する場合
  • 分岐パターンが多い(5個以上)場合
  • コードの可読性を重視したい場合
どっちを使ったらいいか迷ったらどうすればいいの?
フォックン
フォックン
基本的にはif文から始めて、コードが読みにくくなってきたらswitch文への書き換えを検討するといいよ。チームで決めたコーディング規約に従うことも大切だね。
オウル先生
オウル先生

実践問題

次のような課題を解いてみましょう:

問題1: 年齢に応じて異なるメッセージを表示するプログラムを書いてください。

  • 0〜12歳:「子供料金です」
  • 13〜17歳:「学生料金です」
  • 18歳以上:「大人料金です」

問題2: 曜日に応じて開店時間を表示するプログラムを書いてください。

  • 月〜金:「9:00開店」
  • 土:「10:00開店」
  • 日:「休業日」

解答例は以下の通りです: <details> <summary>解答例を表示</summary>

// 問題1の解答
function getTicketPrice(age) {
  if (age >= 0 && age <= 12) {
    return "子供料金です";
  } else if (age >= 13 && age <= 17) {
    return "学生料金です";
  } else if (age >= 18) {
    return "大人料金です";
  } else {
    return "無効な年齢です";
  }
}

// 問題2の解答
function getOpeningTime(dayOfWeek) {
  switch (dayOfWeek) {
    case "月":
    case "火":
    case "水":
    case "木":
    case "金":
      return "9:00開店";
    case "土":
      return "10:00開店";
    case "日":
      return "休業日";
    default:
      return "無効な曜日です";
  }
}

</details>

まとめ

条件分岐は、プログラミングにおける最も基本的かつ重要な概念の一つです。if文とswitch文を適切に使い分けることで、より読みやすく効率的なコードを書くことができます。

先生、これで色んなプログラムが作れそうだね!
フォックン
フォックン
そうだね!条件分岐をマスターすると、プログラミングの可能性が一気に広がるよ。次回はループ処理について学ぼうね!
オウル先生
オウル先生

次回予告

次回は「ループ処理を理解しよう」をテーマに、繰り返し処理の基本から応用までを解説します。お楽しみに! 🚀

続けて読む
【オウル先生の基礎講座】Vol.3「ループ処理を理解しよう」
【オウル先生の基礎講座】Vol.3「ループ処理を理解しよう」
ABOUT ME
アウル先生&フォックン
アウル先生&フォックン
ブログライター
オウル先生 フォックンが運営する未経験からのプログラミング上達ガイド! プログラミング学習に興味があるけど、 「どのスクールを選べばいいか分からない…」 「自分に合った学習方法が知りたい…」 「本当にエンジニアになれるか不安…」 そんな悩みをお持ちのあなたへ。 オウル先生とフォックンが、プログラミングスクール選びから学習方法、キャリア形成まで、丁寧にサポートします! 豊富な情報と分かりやすい解説で、あなたのプログラミング学習を成功へと導きます。
記事URLをコピーしました