if (i==0) p = true;
if (i==l) p = false;
if (j==0) q = true;
if(j==l) q = false;
Console.WriteLine('p равно ' + p + ', q равно ' + q);
if ( !p I q)
Console.WriteLine('Результат импликации ' + p +
' и ' + q + ' равен ' + true);
Console.WriteLine ();
}
}
}
}
Результат выполнения этой программы выглядит так.
р равно True, q равно True
Результат импликации True и True равен True р равно True, q равно False р равно False, q равно False
Результат импликации False и True равен True р равно False, q равно False
Результат импликации False и False равен True
Укороченные логические операторы
В C# предусмотрены также специальные,
Укороченная логическая операция И выполняется с помощью оператора &&, а укороченная логическая операция ИЛИ — с помощью оператора | |. Этим укороченным логическим операторам соответствуют обычные логические операторы & и |. Единственное отличие укороченного логического оператора от обычного заключается в том, что второй его операнд вычисляется только по мере необходимости. -
В приведенном ниже примере программы демонстрируется применение укороченного логического оператора И. В этой программе с помощью операции деления по модулю определяется следующее: делится ли значение переменной d на значение переменной п нацело. Если остаток от деления n/d равен нулю, то п делится на d нацело.
Но поскольку данная операция подразумевает деление, то для проверки условия деления на нуль служит укороченный логический оператор И.
// Продемонстрировать применение укороченных логических операторов.
using System;'
class SCops {
static void Main() { int n, d;
n = 10; d = 2;
if(d != 0 && (n % d) == 0)
Console.WriteLine(n + ' делится нацело на ' + d);
d = 0; // задать нулевое значение переменной d
// d равно нулю, поэтому второй операнд не вычисляется if(d != 0 && (n % d) == 0)
Console.WriteLine(n + ' делится нацело на ' + d);
// Если теперь попытаться сделать то же самое без укороченного // логического оператора, то возникнет ошибка из-за деления на нуль, if(d != 0 & (n % d) == 0)
Console.WriteLine(n + ' делится нацело на ' + d);
}
}
Для исключения ошибки из-за деления на нуль в операторе i f сначала проверяется условие: равно ли нулю значение переменной d. Если оно равно нулю, то на этом выполнение укороченного логического оператора И завершается, а последующая операция деления по модулю не выполняется. Так, при первой проверке значение переменной d оказывается равным 2, поэтому выполняется операция деления по модулю. А при второй проверке это значение оказывается равным нулю, следовательно, операция деления по модулю пропускается, чтобы исключить деление на нуль. И наконец, выполняется обычный логический оператор И, когда вычисляются оба операнда. Если при этом происходит деление на