Menu
CoddyTech

インデックスを使った反復処理

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: orange

range(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]
challenge icon

チャレンジ

簡単

プログラムは、カンマで区切られた整数の行を配列 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))
	# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ