ネストした if - else
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 32/74。
if-elif-else 文は、互いに入れ子(ネスト)にすることができます。これにより、階層的な意思決定構造を作成できます。
例えば:
if (age > 18) {
if (hasLicense) {
std::cout << "You can drive";
} else {
std::cout << "Get a license first";
}
} else {
std::cout << "Too young to drive";
}無限にネストさせることができます:
if (condition1) {
if (condition2) {
if (condition3) {
// condition1、condition2、およびcondition3が真(true)の場合
}
}
}チャレンジ
初心者ジェットコースターに乗れるかどうかを判定するプログラムを作成してください。条件は以下の通りです:
- 12歳以上であること
- 身長が150cmより高いこと
- 両方の条件を満たしていても、15歳未満の場合は大人の同伴が必要です
各ケースについて、以下のメッセージを正確に出力してください:
- 年齢が足りない場合:
Sorry, you are too young - 身長が足りない場合:
Sorry, you are not tall enough - 15歳未満で大人の同伴がない場合:
Sorry, you need an adult with you - 15歳未満で大人の同伴がある場合:
You can ride with adult supervision! - 15歳以上で身長が足りている場合:
You can ride by yourself!
チートシート
if-elif-else 文を互いにネスト(入れ子)にして、階層的な意思決定構造を作成することができます:
if (age > 18) {
if (hasLicense) {
std::cout << "You can drive";
} else {
std::cout << "Get a license first";
}
} else {
std::cout << "Too young to drive";
}ネストは無限に行うことができます:
if (condition1) {
if (condition2) {
if (condition3) {
// condition1、condition2、および condition3 が真の場合
}
}
}自分で試してみよう
#include <iostream>
int main() {
int age, height;
bool hasAdult;
std::cin >> age >> height >> hasAdult; // この行を変更しないでください
// 以下にコードを記述してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。