Как понимать этот пример:
  1. function test takes integer num, integer pow returns integer
    integer res = 1, i = 0
    do {
    res *= num
    } whilenot (i++ >= pow)
    return res
    endfunction
  1. 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, затем будет произведена проверка.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
10
Steal nerves:
ImbaStyle, взял бы и дебагом проверил
так оно поидеи все правильно, но я не понимаю этого в 1 примере после условия прибавляется, а в другом до, мб так и надо хз
15
Принятый ответ
Имба, христа ради, оформляй код в теги.
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, затем будет произведена проверка.
10
EnergyFrost:
i++ = i+1 разве нет?
нет. i++ == (i= i+1)
я это и имел ввиду
GetLocalPlayer:
Имба, христа ради, оформляй код в теги.
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, затем будет произведена проверка.
теперь понял, спс, хз как тэги делать
15
ImbaStyle, вот зацени Там написано, как работают эти операторы
Инфу по тегам вот тут можешь запалить. Или жмякнуть на форматирование txt2 в верхнем правом углу окна ввода сообщения
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.