JAVA逻辑运算符的“短路特性”
来源:互联网 发布:如何安装pscs6软件 编辑:程序博客网 时间:2024/04/19 18:13
阅读下列代码,写出 ①②③④⑤⑥⑦⑧输出的值
public class TestLogic{ public static void main(String[] args){ int ia = 3; int ib = 2; boolean b3 = (++ia == 3 && ++ib == 3);// ① System.out.println("b3 = " + b3); //② System.out.println("ia = " + ia); //③ System.out.println("ib = " + ib); //④ System.out.println("-------------------------------"); //第一个条件为真后,跳过第二个条件的执行 boolean b4 = (++ia == 5 || ++ib == 3);// System.out.println("b4 = " + b4); //⑥ System.out.println("ia = " + ia); //⑦ System.out.println("ib = " + ib); //⑧ }}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
答案:
public class TestLogic{ public static void main(String[] args){ int ia = 3; int ib = 2; //在逻辑与第一个条件为假后,跳过第二个条件的执行 boolean b3 = (++ia == 3 && ++ib == 3);// ① System.out.println("b3 = " + b3); //② false System.out.println("ia = " + ia); //③ 4 System.out.println("ib = " + ib); //④ 2 System.out.println("-------------------------------"); //在逻辑或中第一个条件为真后,跳过第二个条件的执行 boolean b4 = (++ia == 5 || ++ib == 3);//⑤ System.out.println("b4 = " + b4); //⑥ true System.out.println("ia = " + ia); //⑦ 5 System.out.println("ib = " + ib); //⑧ 2 }}
解析:
①是自增和逻辑与运算符,++ia和++ib的++号在前面,所以是先运算在赋值,
根据JAVA中逻辑与运算符的特性,第一个表达式是false后,就直接false,不执行第二个表达式了。
②由①知道,ia原本等于3,++ia后等于4,所以b3等于false;
③ia原本等于3,++ia后,ia等于4;
④ib依然等于2,因为①逻辑与中第一个表达式是false,所以第二个表达式中++ib没有执行,所以ib还是原来的初始化赋值等于2.
⑤这里是自增运算符和逻辑或运算符,因为由③可知,ia已经等于4了,在执行++ib等于5,在逻辑或运算符中,第一个表达式为true,就不在执行后面的表达式了。
⑥由⑤可知⑥为true;
⑦由⑤可知⑦打印出来的是5;
⑧ib依然是2,因为⑤逻辑或第一个表达式为true后,就没有执行后面的表达式了,所以++ib没有执行,i所以ib依然是2.
阅读全文
0 0
- 关于java逻辑运算符的短路特性
- JAVA逻辑运算符的“短路特性”
- 逻辑运算符的短路特性
- 逻辑运算符的短路特性
- java逻辑运算上的短路特性
- PHP中逻辑运算符的短路特性
- 关于Java里面的短路逻辑运算符
- 逻辑运算符的短路特性 求1+2+3+...+n
- C语言逻辑运算的短路特性
- Java逻辑运算符(短路)
- 逻辑运算符的短路运算
- PHP学习笔记——PHP逻辑运算符的特性(短路)
- 逻辑运算的短路现象
- 逻辑运算的短路问题
- 逻辑运算的短路特征
- Java的逻辑运算符
- Java的逻辑运算符
- Java的逻辑运算符
- Java语言程序设计(基础篇)第10版 习题答案 Chapter9-1
- 35. Search Insert Position
- markdown的基本语法规则
- JavaScript利用URL向后台传入中文参数乱码问题解决之道
- Java面试题七
- JAVA逻辑运算符的“短路特性”
- java五种拼接字符串的方法
- 1.开头难,C语言中的指针
- Jsonp
- my.cnf文件的内容详细解释
- Spring入门笔记(四)通过注解定义bean
- AndroidStudio环境下应用程序导入第三方so库的方法
- WebService——基础原理以及入门
- 38. 数据结构笔记之三十八图的邻接矩阵存储实现