我正在尝试将以下伪代码重写为最简单的if-else,但我正在努力完全理解逻辑。
if (a <= b) then // Here, a <= b.
if (y > b) then P // Here, (a <= b) & (y > b).
else if (x < a) then P // Here, (a <= b) & !(y > b) & (x < a).
else if ((y >= a) & (x <= b)) then Q else R
到目前为止,我对伪代码的解释都写在上面的评论中。 我认为我已经正确地理解了前三行伪代码的逻辑。
但是,我不知道如何解释伪代码的第四行和最后一行的逻辑。 我想帮助理解第四行中四个变量的状态,以及如何将伪代码重写为最简单的if-else。
答案 0 :(得分:1)
如何到达最后一行:
a <= b
必须是真的
y > b
必须是假的
x < a
必须是假的
所以最后一行是:
(a <= b) & !(y > b) & !(x < a) & (y >= a) & (x <= b)
这导致以下结果:
a <= b & a <= x & a <= y
- &gt; a必须是最小的值
b >= a & b >= y & b >= x
- &gt; b必须是最大的价值
y <= b & y >= a
- &gt; y必须介于a和b之间
x >= a & x <= b
- &gt; x必须介于a和b之间
导致:
if((x >= a & x <= b) & (y >= a & y <= b))
(但这仅在您想要到达最后一行时才有效)