JAVA运算符语法问题

JAVA中,为什么逻辑运算符(如&&、||)在某些情况下只用判断前面一个数,忽略后面的数而直接得出表达式的值;但算术运算符则不可以这样呢?
例如,a | b 这个式子中(这是算术运算符),
如果a的值为1,为什么不能直接得出式子值为1,而要把b也计算出来呢?

  • 这些 都是 双目运算符, 逻辑与 和 逻辑非 有 熔断的特征;
  • 逻辑与,前面表达式 false , 整个 表达式 就是false,也就不需要判断执行后一个表达式
  • 逻辑非,前面表达式 true ,整个表达式 就是 true,也就不需要判断执行后一个表达式

img

首先这几个都叫逻辑运算符,&&叫短路与,||叫短路或,为啥叫短路呢,因为只需要判断一个即可,从而提高判断的效率。注意&&只有当前面的为假时才不需要再判断后面的,否则都要判断。
其次,&和|分别叫逻辑与和逻辑或,必须要两个都判断,&表示前后都为真,整个条件为真,否则为假,|表示前后都为假,则整个条件为假,都有为真。
这就是java里面的这几个逻辑运算符的规则。没有啥为啥,就是语法规则哦,记住就可以。望采纳哦,打字不易