短路运算符:

&:与,&的前后都需要执行

&&:短路与,&&的前面为false则&&后面的就直接不执行

|:或,|的前后都需要执行

||:短路或,||前面如果是true则||后面的就直接不执行

1 短路逻辑运算符有哪些

&& ||

2 短路逻辑运算符的用法

非短路: (a>b) & (d<c) 不管结果两边都要去判断

短路: (a>b) && (d<c) 如果a>b为假 就不去判断d<c

就好比你妈说:等你结了婚给我生个孙子就给你10w 想拿到这10w首先要满足两个条件,

如果你没结婚就不用考虑生孙子这件事了吧 当然 未婚先于的除外

非短路: (a>b)|(d<c) 两边都要去判断

短路: (a>b)||(d<c) 如果a>b为真 就不用判断后边 表达式结果就为真。

3 短路逻辑运算符注意点

&和&&

1 运算结果一定相同

2 当符号左边为true时 &和&& 右边都会执行

当符号左边为false时,&右边执行 && 右边不执行

&&遇false则false 才会短路

|和||

1 运算结果相同

2 当符号左边为true时, | 右边执行 ||右边不执行

当符号左边为false时,|和 || 右边都会执行

||遇到true则true 才会短路

三元运算符的注意事项:

1 三元运算符格式以及执行过程是什么

格式:关系表达式?表达式1:表达式2;

执行结果: 关系表达式结果是布尔类型的;

关系表达式为true,运算后的结果是表达式1

关系表达式为false,运算后的结果是表达式2

2 使用三元运算符要注意什么

1.表达式1和2要有明确的计算结果,不能写输出语句

int max = num1 > num2 ? System.out.println(num1) : System.out.println(num);

//大错特错

2.三元运算符的运算结果不能直接摆在那里,要么定义变量接收,要么直接打印输出

num1 > num2 ? num1 : num2;

相当于 num1;//大错特错

可以接收(数据下一步还需要使用)

int num = num1 > num2 ? num1 : num2;

可以直接打印(单纯展示数据)

System.out.println(num1 > num2 ? num1 : num2);

3.表达式1和2 结果要有一个统一的类型

double d = 10 > 5 ? 2 : 1.0;

???=10 > 5 ? "2" : 1.0; //目前还是不允许的

4.三元运算符可以嵌套使用:

int a=10,b=20;

String result=a>b?"a大":"b大";

如果a和b相等嵌套一下

String result=a>b?"a大":(a==b?"相等":"b大");

5.凡是可以使用三元运算符的地方都可以改写为 if-else

如果程序既可以使用三元 又可以使用 if -else 优先选择三元, 原因是:简洁,效率高(三元本身是运算符)