Перебор с индексами
Часть раздела Основы путешествия по 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: 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))
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript