What is wrong with the short circuit logic in this Java code?

后端 未结 9 1154
挽巷
挽巷 2021-01-18 01:58

Why doesn\'t func3 get executed in the program below? After func1, func2 doesn\'t need to get evaluated but for func3, shouldn\'t it?

if (func1() || func2()          


        
9条回答
  •  既然无缘
    2021-01-18 02:20

    You're using the shortcut-operators || and &&. These operators don't execute the rest of the expression, if the result is already defined. For || that means if the first expression is true and for && if the first expression is false.

    If you want to execute all parts of the expression use | and & instead, that is not shortcut.

提交回复
热议问题