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

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

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

Отрывок программы, где идет перегрузка оператора |. Истина - если хотя бы одна из координат !=0. А Ложь, если все все =0.
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;
    }
....
Не понятно, почему оператор ИЛИ так же не используется в укороченном варианте. Ведь по второй скобке не содержится никаких исключительных ситуаций (типа деления на 0 и т.д.). А программа могла бы работать быстрей, если бы первый операнд (1-я скобка),например, была бы True. В этом случае 2й операнд уже не вычисляется. Но в данном случае просчитываться будут обе. Почему так сделано? Просто так решил автор? Или я чего-то не вижу?Спасибо.

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

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

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


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

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

8   голосов , оценка 3.75 из 5
Похожие ответы