Рассмотрим целочисленное деление
a = bq + r
где a, b, q, r — соответственно: делимое, делитель, частное и остаток. В частности, когда b = 0, не существует уникального q, удовлетворяющего уравнению для данного a, и, следовательно, имеет смысл, что частное q в таком случае не должно быть определено.
Однако в таком случае действительно существует единственное r, а именно r = a. Если предположить, что частное и остаток всегда определяются вместе, из этого следует, что r не определено всякий раз, когда q не определено, но в программировании мы часто хотим использовать операцию остатка %
независимо от деления /
. Я действительно столкнулся с ситуацией, когда я хочу if b == 0 then a else a % b end
.
Есть ли/был ли в каком-либо языке программирования такой оператор, который аналогичен %
, но возвращает делимое вместо ошибки деления на ноль, когда делитель равен 0?
Есть ли причина, по которой большинство (или все) языков программирования возвращают ошибку деления на ноль для % 0
?
remainder
иmodulo
(они различаются, когда аргументы отрицательные, кстати). Оба они переполняются на 0. - person drysdam   schedule 08.04.2011