| и || (Пример из книги) - C#
Формулировка задачи:
Отрывок программы, где идет перегрузка оператора |. Истина - если хотя бы одна из координат !=0. А Ложь, если все все =0.
Не понятно, почему оператор ИЛИ так же не используется в укороченном варианте. Ведь по второй скобке не содержится никаких исключительных ситуаций (типа деления на 0 и т.д.). А программа могла бы работать быстрей, если бы первый операнд (1-я скобка),например, была бы True. В этом случае 2й операнд уже не вычисляется. Но в данном случае просчитываться будут обе. Почему так сделано? Просто так решил автор? Или я чего-то не вижу?Спасибо.
Листинг программы
- class ThreeD
- {
- int x, y, z; // Координаты
- public ThreeD() { x = y = z = 0; }
- public ThreeD(int i, int j, int k) { x = i; y = j; z = k; }
- // Перегрузка |.
- public static bool operator |(ThreeD op1, ThreeD op2)
- {
- if (((op1.x != 0) || (op1.y != 0) || (op1.z != 0)) | // <--------------- см. сюда.
- ((op2.x != 0) || (op2.y != 0) || (op2.z != 0)))
- return true;
- else
- return false;
- }
- ....
Решение задачи: «| и || (Пример из книги)»
textual
Листинг программы
- ((op1.x != 0) || (op1.y != 0) || (op1.z != 0))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д