Здесь нет никакой разницы. В этом случае. Вы делаете что-то еще не так.
Но на самом деле есть разница - в C / C ++ есть Оценка короткого замыкания . Так что, поскольку это не ваш настоящий код, это может вам помочь.
Например, если у вас есть
while( f() || g() )
// ..
, если f()
return true
, g()
никогда не будет выполнено, поскольку выражение будет немедленно оценено как true
. То же самое для &&
:
while( f() && g() )
// ..
если f()
return false
, g()
никогда не будет выполнено, потому что значение выражения точно будет false
(независимо от того, что g()
вернет здесь.
Хорошо, если f()
вернет true
(для последнего примера), g()
будет выполнено , чтобы вычислить значение выражения. То же самое с ||
, но если f()
вернет false
.