3

Так, недавно я думал, что я был очень умным (что-то я узнал, не всегда хорошая черта, когда программирует) и пытался реорганизовать что-то вроде этого:инкремента переменные внутри условных операторов

counter++ 
if (counter > something) { 
    doThisCoolThing() 
} 

в нечто как это

if (++counter > something) { 
    doThisCoolThing() 
} 

, но я сразу сказал, что я не должен этого делать, и пришлось перенести счетчик увеличивающиеся обратно вверх линию.

Я просмотрел интернет для получения информации по этому вопросу, и я придумал несколько страниц на MDN, самое актуальное высказывание "The increment operator increments (adds one to) its operand and returns a value. [...] If used prefix with operator before operand (for example, ++x), then it returns the value after incrementing.", которое, по-видимому, указывает на то, что приращение переменной внутри условного оператора было бы вполне законным. Единственное, что было связано с предупреждением, которое я мог найти, касалось simple assignment, например. if (x = y), но это if ((x = y)) был в порядке.

Я просто хотел получить другие мнения по этому поводу. Это плохая практика или она полностью действительна?

Спасибо

+0

Поскольку это не вопрос, где есть правильный ответ, вы должны задать свой вопрос в http://codereview.stackexchange.com/ Семантический нет никакой разницы , поэтому ваша программа должна вести себя одинаково. – hgoebl

+0

, который работает, проблема заключается в том, что код трудно читать. На мой взгляд, это не очень хорошая практика. –

+0

Кто вам сказал, что вы не должны это делать, друг, коллега, начальник, другой человек на переполнение стека? –

ответ

0

Вы правы! Вы можете использовать скобки для вашего приращения!

if((++a)>somthing){ 
doSomthing(); 
} 

Это должно помочь вам :)

Смежные вопросы