cJass
Содержание:
4.1 Циклы
Синтаксис cJass вводит цикл whilenot как аналог часто используемого варианта цикла с предусловием. Способ использования этого цикла аналогичен стандартному: после оператора whilenot следует условие, при выполнении которого цикл завершается:
function test takes integer num, integer pow returns integer
integer res = 1, i = 0
whilenot (i++ >= pow) {
res *= num
}
return res
endfunction
что транслируется в следующее:
function test takes integer num, integer pow returns integer
local integer res = 1
local integer i = 0
loop
exitwhen (i >= pow)
set i = i + 1
set res = res * num
endloop
return res
endfunction
Также, существует запись этого цикла, при которой проверка условия происходит после выполнения свех действий тела:
function test takes integer num, integer pow returns integer
integer res = 1, i = 0
do {
res *= num
} whilenot (i++ >= pow)
return res
endfunction
что ожидаемо выглядит на JASS2 как:
function test takes integer num, integer pow returns integer
local integer res = 1
local integer i = 0
loop
set res = res * num
exitwhen (i >= pow)
set i = i + 1
endloop
return res
endfunction
Кроме того, вы можете использовать ключевое слово do вместо loop — в cJass они взаимозаменяемы.
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
3
Vlod
5 лет назад
3
Использование локальной переменной с названием dot вызывает ошибку компиляции cJass:
Решение - использовать set dot = 1
3
adic3x
5 лет назад
3
Vlod, проверил, ошибка очевидно вызвана тем, что парсер это воспринимает как начало цикла do. Если добавить к имени переменной еще любой символ - все будет также работать. Вы можете подождать новую версию cJass, где это будет исправлено.
Но не советую, ждать лет 20 - 30
Чтобы оставить комментарий, пожалуйста, войдите на сайт.