else if文とは?
C#のelse if文は、複数の条件を順番にチェックする際に使用する条件分岐文です。
例えば、「もし点数が80点以上なら『優』、そうでなくて60点以上なら『良』、それ以外なら『可』」のように、複数の状況に応じて段階的に判断することがあります。
else if文は何個でも連続して記述でき、最後にelse文を配置することで、すべての条件に該当しない場合の処理も定義できます。そのため、複雑な条件分岐を分かりやすく記述できるのが特徴です。
else if文の特徴
- if文の条件が当てはまらない場合に、次の条件をチェックする
- 条件は上から順番に判定され、最初に当てはまった処理だけが実行される
- else if文は必要な数だけつなげて書くことができる
- 全ての条件に当てはまらない場合の処理をelse文で記述できる
- 複数の条件分岐を分かりやすく整理できる
プログラムの流れをコントロールし、さまざまな状況に応じて適切な処理をさせるために欠かせません。
基本構文
else if文の基本的な構文は、if文の後にelse ifキーワードと条件式を記述します。
以下に基本的なコード例を示します。
出力結果
良好
この例では点数に基づいて評価を判定しています。scoreが85なので、最初の条件(90以上)は偽、次の条件(70以上)が真となり「良好」が出力されます。条件は上から順にチェックされ、最初に真となった条件のみが実行されるため、効率的な判定が可能です。
実用例
ここからは、C#のelse if文を使った具体的なサンプルコードを見ていきましょう。年齢判定や分類といった、日常的なプログラミングで遭遇するパターンを網羅的に解説していきます。動物をテーマにした親しみやすい例を通して条件分岐の動きを解説しますので、ぜひご自身のプログラムに応用してみてください。
年齢による動物の成長段階判定
動物の年齢に基づいて成長段階を判定するプログラムです。ネコの年齢を人間換算で分類します。
出力結果
成ネコ
この例では、ネコの年齢を表す変数catAgeに3を代入し、その値に応じて成長段階を判定しています。
最初のif (catAge < 1)は偽(false)となり、次のelse if (catAge < 7)が評価されます。3は7より小さいため条件は真(true)となり、「成ネコ」と出力されます。条件分岐を使うことで、数値の範囲に応じた異なる処理を行うことができます。
動物の体重による分類判定
動物の体重に応じてサイズカテゴリを判定します。イヌの体重を基準に小型犬、中型犬、大型犬に分類します。
出力結果
中型のイヌ
この例では、イヌの体重を表す変数dogWeightに15.5を代入し、その値に応じてサイズカテゴリを判定しています。最初のif (dogWeight < 10)は偽(false)となり、次のelse if (dogWeight < 25)が評価されます。
15.5は25より小さいため条件は真(true)となり、「中型のイヌ」と出力されます。
条件分岐を使うことで、体重などの数値データを基準に分類処理を行うことができます。
季節による動物の行動パターン
月の数値に基づいて季節を判定し、対応する動物の行動を表示するプログラムです。
出力結果
夏:クマが魚取り
この例では、月を表す変数monthに7を代入し、その値に応じて季節ごとの動物の行動を判定しています。条件を上から順に評価した結果、month >= 6 && month <= 8が真(true)となるため、「夏:クマが魚取り」と出力されます。
AND演算子(&&)を使うことで、「〇〇以上、かつ、△△未満」といった範囲指定をともなう条件を、一つのif文で簡潔に記述できます。
動物の鳴き声による種類判定
動物の鳴き声を判定して種類を特定するプログラムです。文字列の比較を使用します。
出力結果
ネコです
この例では、鳴き声が「ニャー」のため、「ネコです」と判定されます。変数soundには文字列「ニャー」が設定されているので最初のif文では「ワンワン」と比較し、条件は偽です。次に評価されるelse if (sound == "ニャー")では、文字列が完全に一致するため条件は真となり、このブロック内の処理が実行されます。
動物の速度による移動方法判定
動物の移動速度に基づいて移動方法を判定するプログラムです。時速を基準に分類します。
出力結果
ウマが駆け足
この例では、動物の移動速度を表す変数speedに45を代入し、その値に応じて移動方法を判定しています。条件を上から順に評価した結果、speed < 60の条件が真(true)となるため、「ウマが駆け足」と出力されます。
速度や数値の範囲に応じて条件を分岐させることで、多様な動作を表現できます。
気温による動物の快適度判定
気温に応じて動物の快適度を判定するプログラムです。ペットの健康管理に役立つ例です。
出力結果
イヌが快適
この例では、気温を表す変数temperatureに22を代入し、その値に応じてイヌの快適度を判定しています。最初のif (temperature < 10)は偽(false)となり、次のelse if (temperature < 25)が評価されます。22は25より小さいため条件は真(true)となり、「イヌが快適」と出力されます。
数値の範囲を条件分岐で指定することで、状態を段階的に判定できます。
動物の食事量による健康状態判定
ペットの1日の食事量から健康状態を判定するプログラムです。適切な給餌量の管理に活用できます。
出力結果
ネコの食事量が適正
この例では、ネコの1日の食事量を表す変数foodAmountに250.0を代入し、その値に基づいて健康状態を判定しています。最初のif (foodAmount < 200)は偽(false)となり、次のelse if (foodAmount <= 300)が評価されます。250.0は300以下のため条件は真(true)となり、「ネコの食事量が適正」と出力されます。
「<=」を使う際の注意点として、境界となる値を含むか含まないかを意識することが重要です。もし、このコードの条件式が foodAmount < 300 だった場合、foodAmountがちょうど300のときに「ネコの食事量が多い」と判定されてしまいます。
動物の活動時間による生態分類
動物の主な活動時間帯に基づいて生態を分類するプログラムです。24時間制で判定します。
出力結果
夜行性:フクロウが活動中
この例では、if文とelse if文の条件はどちらも偽(false)となるため、最後のelseブロックが実行され、「夜行性:フクロウが活動中」と出力されます。
まとめ
C#のelse if文は、複数の条件を効率的に処理する重要な制御構文です。この記事では、基本的な使い方から実際の活用例まで解説しました。
else if文が活躍する場面は次のようなケースです。
else if文が活躍する場面
- 成績評価など、値の範囲に応じて処理を分けたいとき
- 複数の選択肢の中から、特定の条件に合った処理をしたいとき
- 段階的な条件判定が必要なとき
else if文を用いる上で、押さえておきたいポイントを覚えておきましょう。
重要なポイント
- if文の後に記述し、条件が真になるまで上から順に評価される
- 最初に条件が真になったブロックのみが実行される
- else if文は必要な数だけ連続して記述できる
初めてC#を学ぶ方も、この記事で紹介したelse if文を実際に書いて、基本的な使い方を試してみてください。
複数の条件を処理するコードは、実際の開発で想像以上によく使用されます。マスターしておけば役立つこと間違いなしです。