为什么我的程序会卡在我的 do while 循环中?
Why is my program getting stuck in my do while loop?
我的程序似乎卡在了 do while 循环中。我希望 re-prompt 用户输入非零或非一的数字
如果x == 0
呢? x != 1
为真,整个条件为真。
如果x == 1
呢? x != 0
为真,整个条件为真。
如果x == 2
呢? x != 0
为真,整个条件为真。
所以,无论如何,你的条件都会为真,你会继续循环。
您希望满足以下条件:
(x == 0 || x == 1) && (y == 0 || y == 1)
所以你想在它为假时循环。
do { } while (!((x == 0 || x == 1) && (y == 0 || y == 1)));
!(P && Q)
等同于!P || !Q
,而
!(P || Q)
等同于 !P && !Q
这意味着以下内容等同于以上内容:
do { } while (!(x == 0 || x == 1) || !(y == 0 || y == 1));
do { } while ((x != 0 && x != 1) || (y != 0 && y != 1));
我的程序似乎卡在了 do while 循环中。我希望 re-prompt 用户输入非零或非一的数字
如果x == 0
呢? x != 1
为真,整个条件为真。
如果x == 1
呢? x != 0
为真,整个条件为真。
如果x == 2
呢? x != 0
为真,整个条件为真。
所以,无论如何,你的条件都会为真,你会继续循环。
您希望满足以下条件:
(x == 0 || x == 1) && (y == 0 || y == 1)
所以你想在它为假时循环。
do { } while (!((x == 0 || x == 1) && (y == 0 || y == 1)));
!(P && Q)
等同于!P || !Q
,而
!(P || Q)
等同于 !P && !Q
这意味着以下内容等同于以上内容:
do { } while (!(x == 0 || x == 1) || !(y == 0 || y == 1));
do { } while ((x != 0 && x != 1) || (y != 0 && y != 1));