gpt4 book ai didi

c - 坚持简单愚蠢的 C/C++ 逻辑语句

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:08 24 4
gpt4 key购买 nike

在我进入程序的下一部分之前,我有两个开关都需要激活。通常,任一开关都可以打开或关闭。我想运行一个过程,直到两个开关都接合。我似乎无法概念化编写此语句所需的逻辑。

我可以使用两条语句来做我想做的事情,例如:

Start_Process();

while(!sw1){
READ_SWITCHES();
delay();
}

while(!sw2){
READ_SWITCHES();
delay();
}

End_Process();

但我确信有更好的方法来做到这一点。到目前为止,我最好的猜测是:

while(!(sw1 || sw2)){    
READ_SWITCHES();
delay();
}

但我不确定这是正确的。

出于某种原因,这看起来也不对。

while(!sw1 && !sw2){
READ_SWITCHES();
delay();
}

我已经完成了比这复杂得多的逻辑语句,但出于某种原因,我无法理解这个简单的语句。感谢您提供的任何帮助。

最佳答案

您需要一个表达式,该表达式求值为 true,直到变量 sw1sw2 中的一个或两个为 false。试试这个

while(!sw1 || !sw2) {

READ_SWITCHES();
delay();
}

while(!(sw1 && sw2)) {

READ_SWITCHES();
delay();
}

记住表达式 !(sw1 && sw2)!sw1 || !sw2 根据德摩根定律是等价的。

关于c - 坚持简单愚蠢的 C/C++ 逻辑语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com