Java - 決定構造:初心者のガイド
未来のJavaプログラマーの皆様、ようこそ!今日は、プログラミングの最も重要な側面の1つ、決定構造について深く掘り下げます。現実生活のように、私たちのプログラムも特定の条件に基づいて選択を行う必要があります。Javaがこの重要なタスクをどのように処理するのかを探ってみましょう。
Javaの制御文
制御文は、Javaの決定構造の骨組みです。これにより、プログラムは特定の条件に基づいて異なるコードブロックを実行することができます。最も一般的なものから始めましょう:if文です。
if文
if文は、コードのための交通信号灯のようなものです。条件を確認し、もし真であれば、コードブロックの実行を許可します。
int age = 18;
if (age >= 18) {
System.out.println("You can vote!");
}
この例では、年齢が18歳以上の場合、メッセージが印刷されます。さもなければ、何も起こりません。簡単でしょうか?
if-else文
しかし、条件が偽の場合に何かを行いたいと思うこともあります。そんなときにはif-else文を使います。
int temperature = 25;
if (temperature > 30) {
System.out.println("It's hot outside!");
} else {
System.out.println("The weather is nice.");
}
ここでは、温度が30以上の場合に「暑い」メッセージを得ます。それ以外の場合は、「よい天気」メッセージが表示されます。
if-else-ifの連鎖
時々、複数の条件を確認する必要があります。そんなときに役立つのがif-else-ifの連鎖です。
int score = 75;
if (score >= 90) {
System.out.println("A grade");
} else if (score >= 80) {
System.out.println("B grade");
} else if (score >= 70) {
System.out.println("C grade");
} else {
System.out.println("Need improvement");
}
このコードは、スコアを確認し、それに基づいて成績を割り当てます。これは一連の障害物のようで、コードは最初に真となる条件で停止します。
switch文
単一の変数に基づく複数のオプションがある場合、switch文は最良の友になります。
int dayNumber = 3;
switch (dayNumber) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
// ... 他の曜日 ...
default:
System.out.println("Invalid day number");
}
switch文は、dayNumberの値を確認し、対応するcaseを実行します。default caseは、予期しない値に対する安全ネットのようなものです。
三項演算子:?:
それでは、Javaの便利な短縮形についてお話ししましょう:三項演算子。これはif-else文のようなコンパクトな書き方です。
int x = 10;
String result = (x > 5) ? "Greater than 5" : "Less than or equal to 5";
System.out.println(result);
この1行で、xが5より大きいかどうかを確認します。もし真であれば、「Greater than 5」をresultに割り当て、それ以外の場合は、「Less than or equal to 5」を割り当てます。
実際の例
新たに得た知識を実際の世界の例で仕事に使いましょう。映画館のチケット価格を決定する簡単なプログラムを作成すると仮定しましょう。
public class MovieTicketPricing {
public static void main(String[] args) {
int age = 25;
boolean isStudent = false;
boolean isWeekend = true;
double ticketPrice;
if (age < 12) {
ticketPrice = 5.0;
} else if (age >= 65) {
ticketPrice = 7.0;
} else if (isStudent) {
ticketPrice = 8.0;
} else {
ticketPrice = 12.0;
}
if (isWeekend) {
ticketPrice += 2.0;
}
System.out.println("Your ticket price is: $" + ticketPrice);
}
}
この例では、年齢と学生ステータスに基づいて基本のチケット価格を決定するために複数のif-else文を使用します。その後、週末料金を追加するためにさらにif文を使用します。
制御フローの表
以下は、私たちがカバーした制御フロー文のまとめ表です:
文 | 目的 | 構文 |
---|---|---|
if | 条件が真である場合にコードを実行 | if (condition) { code } |
if-else | 真の場合に1つのブロックを、偽の場合に別のブロックを実行 | if (condition) { code1 } else { code2 } |
if-else-if | 順番に複数の条件を確認 | if (condition1) { code1 } else if (condition2) { code2 } else { code3 } |
switch | 1つの変数に基づく複数のコードブロックの実行を選択 | switch(expression) { case value1: code1; break; ... default: codeDefault; } |
?: (三項) | if-else文の割り当て用の短縮形 | result = (condition) ? trueValue : falseValue; |
結論
決定構造は、プログラミングロジックの心臓部分です。これらのツールをJavaツールキットに加えることで、ダイナミックで応答性の高いプログラムを作成する道を歩み始めました。練習は成功の一部です!独自のシナリオを作成し、これらの制御構造を実装してみてください。
Javaの旅を続ける中で、プログラムをさらに賢く、効率的にする方法をさらに発見するでしょう。コーディングを続け、学び続け、そして最も重要なのは、それを楽しんでください!
次は何か?私たちは、効率的にコードブロックを繰り返すためのループについて掘り下げることになります。Javaスキルを次のレベルに引き上げる準備をしてください!
Credits: Image by storyset