Menu
CoddyTech

Перебор с индексами

Часть раздела Основы путешествия по GDScript на Coddy. Урок 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