Что такое массивы?
Массив — это набор однотипных данных. Например массив строк, массив цифр, и т.д. Массив, удобно использовать когда, нужно объединить множество данных в одну группу. Для примера, разберем массив цветов.
Разбираемся в синтаксисе.
Перепишите следующий код к себе в ACS:
str colors[3];
colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";
Синтаксис у массива, следующий:
тип название_массива[количество_элементов]
- тип — задает тип хранимых значений
- название_массива — указывает название массива
- количество_элементов — задает максимальное количество элементов в массиве.
В нашем случае:
str colors[3];
- Мы создали массив, который хранит строки (str)
- название_массива у нас «colors«
- количество_элеметов — 3, что значит, максимально, массив сможет вместить 3 строки (str).
Далее, мы присвоили строки, к каждому элементу массива.
colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";
Строки задаются по индексу (номеру элемента массива).
colors[индекс]
Кстати, так как индекс задается с 0, то-есть индекс 0 возвращает первый элемент массива, то 2-ой индекс является последним. Если попробовать присвоить значение, к 4-му элементу массива (к элементу с индексом 3), то компилятор выдаст ошибку.
colors[3] = "imposible_color"; //Dont do this, this is error line
Также, заполнить массив, можно более простым способом.
str colors[3] = {"red", "green", "blue"};
Таким способом, обычно задают начальные значения массива. Когда как вторым.
colors[0] = "red";
colors[1] = "green";
colors[2] = "blue";
Меняют элементы, уже созданного массива.
Хорошо, с теорией разобрались, приступаем к практике.
Используем массивы.
В качестве примера, я написал вот такой скрипт.
#include "zcommon.acs"
str colors[3] = {"red", "green", "blue"};
int index = 0;
script 1 (void) {
index++;
if(index > 2) index = 0;
print(s:colors[index]);
}
Данный скрипт, показывает на экране (print), следующий элемент массива. Если индекс вышел за пределы массива.
if(index > 2) index = 0;
То возвращаем его, к первому элементу массива.
Готово, осталось привязать этот скрипт к рычагу.
Теперь, при нажатии на рычаг, будет показываться следующий элемент массива.