Здравствуйте, Евгений Музыченко, Вы писали:
N>>Потому что они в голове сперва выполняют проверку на больше/меньше и уже потом из большего вычитают меньшее.
ЕМ>Вас это смущает? Меня — ничуть, коли уж человек от рождения оперирует понятиями "до/после", "выше/ниже" и подобными. А если чей-то возраст вдруг оказался больше возраста любого из его биологических родителей, то это вызывает недоумение даже у дикарей, никогда не слыхавших об отрицательных числах.
Вот из подобной логики математики от Пифагора и аль-Хорезми и вплоть до Кардано вынуждены были расписывать решения уравнений типа x**2+p*x+q=0 на все 4 случая (а для кубического — уже на 8).
А потом пришло следующее поколение с Виетой и упростило весь этот бардакомаразм, введя отрицательные числа.
N>>С отрицательными числами такие проверки часто можно опускать в принципе.
ЕМ>В принципе их опустить нельзя — только применить в другом месте и в другом виде. Ну и я правильно понял, что в своем коде Вы предпочитаете писать "if (a — b < 0)" вместо "if (a < b)"?
Если оно почему-то уже вычислено отдельно — то почему бы и нет? По крайней мере если переполнения при вычитании не происходит, эти сравнения эквивалентны, а если может происходить — то надо включать повышенную осторожность ко всем операциям.