Добавлен 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, затем будет произведена проверка.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
GetLocalPlayer: теперь понял, спс, хз как тэги делать
Отредактирован EnergyFrost
Инфу по тегам вот тут можешь запалить. Или жмякнуть на форматирование txt2 в верхнем правом углу окна ввода сообщения