我在C++中偶然发现了下面的语法结构:
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
我原先认为这个|=
是OR运算符的快捷方式,如果至少有一个对TryAndDoSomething
的调用返回true
,那么最终result
将等于true
。
但现在我在想,是否可能有多个调用返回true
。实际上,如果我们将操作扩展为:
result = result || TryAndDoSomething(i);
那么只有当返回值为false
时才会调用该方法,也就是说,如果之前的任何一次调用都返回了true
,则不会进行任何其他调用。因此,在返回true
之后的一次调用后,将不会执行任何其他调用。
这是否是正确的解释?