Как понимать этот пример:
  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, затем будет произведена проверка.
`
ОЖИДАНИЕ РЕКЛАМЫ...

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