三元运算符
三元运算符的格式:
(关系表达式) ? 表达式1 : 表达式2;
执行流程:
*如果关系表达式的值为true,就返回表达式1的值;
*如果关系表达式的值为false,就返回表达式2的值。
If语句
if语句的格式1:
if(比较表达式) {
语句体;
}
执行流程:
*先计算比较表达式的值,看其返回值是true还是false。
*如果是true,就执行语句体;
*如果是false,就不执行语句体;
if语句的格式2:
if(比较表达式) {
语句体1;
}else{
语句体2;
}
执行流程:
*首先计算比较表达式的值,看其返回值是true还是false。
*如果是true,就执行语句体1;
*如果是false,就执行语句体2;
if语句的格式3:
if(比较表达式1) {
语句体1;
}elseif(比较表达式2) {
语句体2;
}elseif(比较表达式3) {
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
*首先计算比较表达式1看其返回值是true还是false,
*如果是true,就执行语句体1,if语句结束。
*如果是false,接着计算比较表达式2看其返回值是true还是false,
*如果是true,就执行语句体2,if语句结束。
*如果是false,接着计算比较表达式3看其返回值是true还是false,
*如果都是false,就执行语句体n+1。
Switch语句
switch语句的格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
执行流程:
*先计算表达式的值
*然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
选择结构switch语句的注意事项:
*a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
*b:default可以省略吗?
*可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
*特殊情况:
*case就可以把值固定。
*A,B,C,D
*c:break可以省略吗?
*最后一个可以省略,其他最好不要省略
*会出现一个现象:case穿透。
*最终我们建议不要省略
*d:default一定要在最后吗?
*不是,可以在任意位置。但是建议在最后。
*e:switch语句的结束条件
*a:遇到break就结束了
*b:执行到switch的右大括号就结束了
* byte可以作为switch的表达式吗? 可以
* long可以作为switch的表达式吗? 不可以
* String可以作为switch的表达式吗? 可以
基本数据类型可以接收byte,short,char,int
引用数据类型可以接收枚举(JDK1.5)String字符串(JDK1.7)
If语句和三元运算符的区别
1、三元运算符实现的,都可以采用if语句实现。反之不成立。
2、什么时候if语句实现不能用三元改进呢?
*当if语句控制的操作是一个输出语句的时候就不能。
*为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
选择结构if语句和switch语句的区别
switch语句和if语句的各自使用场景
1、switch建议判断固定值的时候用
2、if建议判断区间或范围的时候用
&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别
首先名称是不同的
&&逻辑与 ||逻辑或 它们都是逻辑运算符
& 按位与 |按位或 它们都是位运算符
运算规则:
&同为1时为1,否则为0
|同为0时为0,否则为1
&&逻辑与 也叫做短路与 左边是false,右边不执行,结果为false
||逻辑或 也叫做短路或 左边是true,右边不执行,结果为true