Замените оператор И на ИЛИ, чтобы получить тот же результат - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть этот код:

IF (x>5 AND y=4) THEN
    dbms_output.put_line("Y");
ELSE
    dbms_output.put_line("N");

Мой вопрос: как изменить код, если вы не можете использовать AND в качестве оператора, но вместо этого вы должны использовать OR, чтобы иметь ту же логику иполучить тот же результат?

Ответы [ 4 ]

1 голос
/ 27 сентября 2019

Вы можете использовать закон Деморгана, чтобы переписать его:

NOT (p AND q) == (NOT p) OR (NOT q)

Итак, в вашем случае

IF (x>5 AND y=4) THEN "Y" ELSE "N"
IF (x<=5 OR y<>4) THEN "N" ELSE "Y"
0 голосов
/ 27 сентября 2019

Если вы измените строку для чтения следующим образом, она будет работать только с оператором ИЛИ:

IF (x <= 5 OR y! = 4) THEN dbms_output.put_line ("N");ELSE dbms_output.put_line ("Y"); = </p>

Результат тот же, но логика немного другая.

0 голосов
/ 27 сентября 2019

Предполагая, что вам разрешено использовать оператор NOT, вы можете написать это:

x > 5 AND y = 4

As:

NOT (x <= 5 OR y <> 4)

Это соответствует закону Де Моргана:

не (A или B) = не A и не B

0 голосов
/ 27 сентября 2019

Или оператор AND и имеет совершенно другую логику, вы не можете использовать AND в качестве оператора, но вместо этого вы должны использовать OR, чтобы иметь ту же логику и получить тот же результат.

...