🌲本文收录于专栏《Java入门练习100例》——试用于学完「Java基础语法」后的巩固提高及「LeetCode刷题」前的小试牛刀。

Java入门练习100例1-10源码 提取码: uqqe

题目描述

难度:简单

/**
* 短路与和逻辑与
*/
public class question_03 {
   public static void main(String[] args){
       int i=5;
       boolean e = i > 6 & i++ > 7;
       System.out.println(e);
       System.out.println(i);
       e = i > 6 && i++ > 7;
       System.out.println(e);
       System.out.println(i);
   }
}

请写出以上代码的输出

知识点

  • 关系运算符
  • 自增运算

解题思路

  • 逻辑与(&)和短路与(&&)在运算上对条件的结果判断不会产生影响,但会对条件本身的运算有影响。

  • 逻辑与(&)在运算时会连续运算所有需要判断的命令.但短路与当遇到false时就停止运算。

代码实现

分析

第一次判断是逻辑与,老实人不管对错,全部计算一下,则i++被执行,输出e=false;i=6

第二次判断是短路与,机灵鬼先判断第一个是错的,就不再往下计算,i++不被执行,输出e=false;i=6

验证

总结

在实际开发中为了增强代码的可读性,统一使用短路与,且不在判断条件中做任何运算。

更多推荐

【Java入门练习100例】03.短路与和逻辑与的区别——老实人和机灵鬼