入れ子のif - else文
CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 29/92。
if文は、別のifブロックやelseブロックの中に入れることができます。これはネストされたifです。まずは通常のif/elseから始めましょう。
var age := 15
var group := ""
if age >= 18:
group = "Adult"
else:
group = "Minor"次に、elseブロック内にネストしたif/elseを使って、未成年者を2つに分けます。
var age := 15
var group := ""
if age >= 18:
group = "Adult"
else:
if age >= 13:
group = "Teenager"
else:
group = "Child"15 は 18 以上ではないため、外側の else が実行されます。その中では、15 >= 13 は true なので、group には "Teenager" が格納されます。
ネストされたifは、ifブロックの中に入れることもできます。
var age := 25
var can_rent_car := false
if age >= 18:
if age >= 21:
can_rent_car = true内側のifは、その中にある外側のブロックが実行される場合にのみ実行されます。ネストのレベルが1つ増えるごとに、タブを1つ追加します。
チャレンジ
簡単視聴者がどの映画を観られるかを判定します。変数 age と with_parent は最初の2行で読み込まれます(変更しないでください)。
入れ子になった if/else を使って message を設定します。
ageが18以上の場合:"You can watch any movie"- そうでなく、
with_parentがtrueの場合:"You can watch PG-13 movies" - それ以外の場合:
"You can only watch G-rated movies"
with_parent は bool なので、直接確認します:if with_parent:。3つのケースすべてを書いてください。テストでは、親がいる場合といない場合のさまざまな年齢が試されます。たとえば、親と一緒にいる17歳の場合、出力は次のとおりです。
You can watch PG-13 movies自分で試してみよう
extends Node
func _ready():
var age := int(OS.read_string_from_stdin()) # この行は変更しないでください
var with_parent := OS.read_string_from_stdin() == "true" # この行は変更しないでください
var message := ""
# 入れ子になった if - else のコードを以下に書いてください
# 以下の行は変更しないでください
print(message)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ