Добавлен ImbaStyle
Как понимать этот пример:
- function test takes integer num, integer pow returns integer
integer res = 1, i = 0
do {
res *= num
} whilenot (i++ >= pow)
return res
endfunction
- 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
во втором варианте проверка на выход идет до увелечения i на 1, а в первом, как понимаю я, сначала увеличивается i и сравнивается с условием?
Принятый ответ
Имба, христа ради, оформляй код в теги.
do {
// Какие-то действия...
} whilenot (i++ >= pow)
Будет транслировано в
loop
// Какие-то действия
exitwhen i >= pow
set i = i + 1
endloop
whilenot это псевдоним exitwhen. Натыкаясь на whilenot, парсер заменяет его на exitwhen Лучше whilenot не использовать, он только путает и С-стилистики не прибавляет, из-за отсутствие такового в самом С.
Разница в инкременте
do {
// Какие-то действия...
} whilenot (i++ >= pow)
Сначала будет произведена проверка, затем увеличение переменной i на 1
do {
// Какие-то действия...
} whilenot (++i >= pow)
Сначала переменная i будет увеличена на 1, затем будет произведена проверка.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
равносильно
i = i + 1
i = i + 2
в то время как
i++ = i + 2
равносильно
i = i + 2
i = i + 1
Отредактирован MpW
set res = res * num операция вычисления (мы тут что-то делаем, с каждым разом перемножаем и res становится больше или меньше, если умножим на отр. число num)
exitwhen (i >= pow) если условие верно, то выходим из цикла, и перестаем пробегать сверху-вниз
set i = i + 1 прибавляем
Есть функция близзардов Pow - возведение в степень.Извиняюсь, там про реальное числоDiaboliko: вот эти вещи со знаками я не понимаю где 2 плюса или минуса, i++ = i+1 разве нет?
GetLocalPlayer: теперь понял, спс, хз как тэги делать
Отредактирован EnergyFrost
Инфу по тегам вот тут можешь запалить. Или жмякнуть на форматирование txt2 в верхнем правом углу окна ввода сообщения