| и || (Пример из книги) - C#

Узнай цену своей работы

Формулировка задачи:

Отрывок программы, где идет перегрузка оператора |. Истина - если хотя бы одна из координат !=0. А Ложь, если все все =0.
Листинг программы
  1. class ThreeD
  2. {
  3. int x, y, z; // Координаты
  4. public ThreeD() { x = y = z = 0; }
  5. public ThreeD(int i, int j, int k) { x = i; y = j; z = k; }
  6.  
  7. // Перегрузка |.
  8. public static bool operator |(ThreeD op1, ThreeD op2)
  9. {
  10. if (((op1.x != 0) || (op1.y != 0) || (op1.z != 0)) | // <--------------- см. сюда.
  11. ((op2.x != 0) || (op2.y != 0) || (op2.z != 0)))
  12. return true;
  13. else
  14. return false;
  15. }
  16. ....
Не понятно, почему оператор ИЛИ так же не используется в укороченном варианте. Ведь по второй скобке не содержится никаких исключительных ситуаций (типа деления на 0 и т.д.). А программа могла бы работать быстрей, если бы первый операнд (1-я скобка),например, была бы True. В этом случае 2й операнд уже не вычисляется. Но в данном случае просчитываться будут обе. Почему так сделано? Просто так решил автор? Или я чего-то не вижу?Спасибо.

Решение задачи: «| и || (Пример из книги)»

textual
Листинг программы
  1. ((op1.x != 0) || (op1.y != 0) || (op1.z != 0))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы