在linux中使用gcc时我写这样的循环
while(1 || 0)
它进入循环但是当我像这样编写循环时
while(0 || 1)
它不会进入循环。差异是什么?
答案 0 :(得分:2)
没有任何区别。执行应该在两个表达式中进入循环。
答案 1 :(得分:1)
或者您可能正在键入
while(0||1);
如果你放了,不会帮助你;在while循环之后
答案 2 :(得分:0)
这里没有区别。在这种情况下。你做错了什么。
但实际上存在差异 - 在C / C ++中,有Short-circuit evaluation。所以,因为这不是你真正的代码,这可以帮助你。
例如,如果你有
while( f() || g() )
// ..
如果f()
返回true
,则永远不会执行g()
,因为表达式将立即评估为true
。 &&
:
while( f() && g() )
// ..
如果f()
返回false
,则永远不会执行g()
,因为表达式的值肯定是false
(与g()
无关将回到这里。
好吧,如果f()
返回true
(对于最后一个示例),将执行g()
来计算表达式的值。与||
相同,但如果f()
返回false
。
答案 3 :(得分:0)
在这两种情况下它都会运行无限循环...它完美地工作...... 它们之间没有区别......
我认为你是在放;在第二个while循环结束时.. 所以删除它,看看答案 4 :(得分:0)
两个代码段都有相同的行为。在这两种情况下,条件都将为真,并将返回无限循环行为。