インデックスを使った反復処理
CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 70/92。
要素をループすると各値を取得できますが、位置は取得できません。インデックスも必要な場合は、range()を使ってインデックスをループし、角括弧で各要素を読み取ります。
var fruits := ["apple", "banana", "orange"]
for i in range(fruits.size()):
print("Index %d: %s" % [i, fruits[i]])Index 0: apple
Index 1: banana
Index 2: orangerange(fruits.size()) は 0、1、2 を返します。これらは配列のインデックスそのものです。繰り返しのたびに、i はインデックス、fruits[i] は要素です。
インデックスを使うと、ループ内で配列を変更することもできます。for price in prices:のループ変数に代入しても変更されるのはその変数だけですが、prices[i]に代入すると配列が変更されます。
var prices := [2, 5]
for i in range(prices.size()):
prices[i] *= 2
print(prices)[4, 10]チャレンジ
簡単プログラムは、カンマで区切られた整数の行を配列 numbers に読み込みます(記述済み)。
50 未満または5 で割り切れる数のインデックスを配列にして出力してください。入力が 80,4,99,36,34 の場合:
80(インデックス 0)は 5 で割り切れる:含める4(インデックス 1)は 50 未満:含める99(インデックス 2):含めない36(インデックス 3)と34(インデックス 4)は 50 未満:含める
出力は次のとおりです:
[0, 1, 3, 4]自分で試してみよう
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var numbers: Array[int] = []
for part in parts:
numbers.append(int(part))
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ