Я создаю цикл, который должен использовать разные частоты для перехода к следующему значению. Пример:
local color = {"Blue", "Green", "Red"}
local group = {1, 2, 3}
for i=1.3 do
cmd(string.format('group %i ; store color %q ; clearall', group[i], color[j]))
end
Это должно привести к:
Group 1 Blue,
Group 1 Green,
Group 1 Red,
Group 2 Blue.......
Я не могу включить цикл в цикл, так как я не могу позволить группе таблиц перемещаться вверх только один раз за 2 цикла. Кроме того, использование двойных значений или использование [i] дважды, похоже, не сработало.
Я надеюсь, что вы можете мне помочь.
Не могли бы вы объяснить, что означает эта фраза: «Я не могу позволить группе таблиц двигаться вверх только один раз в 2 цикла»?





Выполните цикл для девяти итераций (это количество комбинаций, которые вы создаете) и используйте math.floor для вычисления индексов:
local color = {"Blue", "Green", "Red"}
local group = {1, 2, 3}
for i=0, #color*#color-1 do
local g = math.floor(i/3)
local c = i-3*g
print(string.format('group %i ; store color %q ; clearall', group[g+1], color[c+1]))
end
Более простая версия
for i,v in pairs(group) do
for k,c in pairs(color) do
print("Group " .. v .. " " .. c)
end
end
Очень просто, он выполняет итерацию по массиву групп и массиву цветов одновременно и распечатывает каждое значение, каждый раз, когда он проходит по массиву группы, он выполняет итерацию по всем элементам в массиве цветов, Lua имеет встроенную технику для объединения строк использовать строковую библиотеку не нужно :)
Другой способ рассмотрения разницы между ' ' и " "
for i=1, #color do
for _, v in pairs(color) do
print('group '..i..' ; store color "'..v..'" ; clearall')
end
end
Не могли бы вы дать ожидаемый полный результат?