Как стать автором
Обновить

Комментарии 25

В одном случае мы, располагая переменную слева, пишем как читаем «X больше нуля».
X < 0

Здесь X меньше нуля
Не хватает 0 < X < 100.
Считаю частным случаем второго варианта с синтаксическим сахаром языка
0 < X && X < 100
X = -1 =>
0 < X < 100 = (0 < -1) < 100 = 0 < 100 = 1 = true :)
In [1]: x=-1

In [2]: 0 < x < 100
Out[2]: False

In [3]: -10 < x < 10
Out[3]: True

:)

А вообще, в статье как-то не совсем понятно, что именно имеется в виду. Думаю, многие пишут x>0 для одного неравенства, и 0<x<100 (0<x && x<100, x between 0 and 100, или ещё что-то такое в зависимости от языка) для диапазона.
в с++ если ошибиться и написать = вместо == в выражении x == 0 грозит ошибкой. 0 == x безопасней. хотя почти все пишут x == 0.
Но в случае этого оператора аналогичную ошибку подобрать сложно.
или уж один стиль для всех операторов, или бардак будет
Просто надо запускать с
-Werror
или не игнорировать сообщения о потенциальных ошибках.
оно понятно, но ошибка распространенная. проще ее пресечь на этапе компилляции
по вашему -Werror не пресечет на этапе компиляции?
По-моему, эта ошибка переоценена. Серьезно, очень много слышал и читал про нее, но на практике ни разу не видел реального примера, ни у себя в коде, ни у окружающих.
У меня было как-то… один раз, очень давно, ещё в студенчестве и под dos-ом :)
Реально убил кучу времени поиск ошибки. Но это был единственный случай.
Если неравенство в функции одно, или все они однотипны, то пишу человеческое x > 0
Если же неравенств несколько, то всегда использую <, поскольку это облегчает восприятие.
Аналогично. Пишу так, как учили в школе меня и подавляющее большинство россиян: x>0. Так сопровождающему мой код будет проще, он не будет тратить время на узнавание этого мини-паттерна.

Два неравенства: x>0 и x<10 — стараюсь сделать максимально похожим на общеизвестное сокращение: 0<x<10. То бишь, пишу так: 0<x && x<10.
cmp $0,%eax
ja label
test eax,eax
jnz label
Слышал мнение, что в левую часть неравенства нужно ставить то, что «чаще меняется». Потому x < 0, а не наоборот.
Из каких соображений? Если с точки зрения оптимизации выполнения, то это относится только когда у вас в IF несколько условий связанных логическими операторами.
Бинарные операторы сравнения интуитивнее писать так: <что сравнивается> <оператор> <с чем сравнивается>.
Константы и вычисления всегда располагаю справа. Тогда легко и быстро выражение преобразовать в операцию присваивания.
test $x -eq $y && echo equal
Стараюсь писать if (5 == x) что бы избежать таких ошибок как if (x = 5)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории