将 AND 运算符替换为 OR 以获得相同的输出
Replace AND operator with OR to get the same output
我有这个代码:
IF (x>5 AND y=4) THEN
dbms_output.put_line("Y");
ELSE
dbms_output.put_line("N");
我的问题是:如果您不能将 AND 用作运算符,而是必须使用 OR 以获得相同的逻辑并获得相同的结果,您如何更改代码?
Or 和 AND 运算符的逻辑完全不同,您不能使用 AND 作为运算符,而是必须使用 OR 才能具有相同的逻辑并得到相同的结果。
你可以用德摩根定律改写:
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"
如果您将行更改为这样,它将仅与 OR 运算符一起使用:
IF (x<=5 OR y!=4) 然后 dbms_output.put_line("N");否则 dbms_output.put_line("Y");=
结果是一样的,只是逻辑略有不同。
我有这个代码:
IF (x>5 AND y=4) THEN
dbms_output.put_line("Y");
ELSE
dbms_output.put_line("N");
我的问题是:如果您不能将 AND 用作运算符,而是必须使用 OR 以获得相同的逻辑并获得相同的结果,您如何更改代码?
Or 和 AND 运算符的逻辑完全不同,您不能使用 AND 作为运算符,而是必须使用 OR 才能具有相同的逻辑并得到相同的结果。
你可以用德摩根定律改写:
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"
如果您将行更改为这样,它将仅与 OR 运算符一起使用:
IF (x<=5 OR y!=4) 然后 dbms_output.put_line("N");否则 dbms_output.put_line("Y");=
结果是一样的,只是逻辑略有不同。