如何解决如果语句逻辑反向
bool x = someFuncThatReturnsTrueorFalse();
if (!x && (str1.length() != str2.length()) {
// do nothing
} else {
// do something
}
如何重新排列上面的代码以消除else语句? 如果bool = false且str1和str2的长度不同,则无需执行任何操作。否则,我需要做一些事情(例如函数调用)。
对于我的一生,我想不出任何办法来改变这一点。让我知道您是否需要更多详细信息。
解决方法
最简单的方法是将!()
放在条件周围。
bool x = someFuncThatReturnsTrueorFalse();
if (!(!x && (str1.length() != str2.length())) {
// do something
}
另一种方法是使用De Morgan定律:!(A && B)
等效于!A || !B
。
bool x = someFuncThatReturnsTrueorFalse();
if (x || (str1.length() == str2.length()) {
// do something
}
,
按原样离开没有错。该代码仍将编译
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。