Я наткнулся на следующую конструкцию в C ++:
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
Я предположил, что это | =
было ярлыком для Оператор OR, и этот результат
будет равен true
в конце, если хотя бы один из этих вызовов TryAndDoSomething
вернул true
.
Но теперь мне интересно, может ли несколько вызовов действительно вернуть true
.В самом деле, если мы расширим операцию как:
result = result || TryAndDoSomething(i);
, то метод будет вызываться только в том случае, если return оценивается как false
, то есть, если никакой другой вызов до этого не возвратил true
. Таким образом, после того, как один вызов вернул истину
, другой вызов не будет выполнен.
Это правильная интерпретация?