文章目录
一、判断语句
1.1 if
if(关系表达式){ //关系表达式最终结果必须是布尔类型
语句体; // 指的是条件满足后需要执行的代码
}
执行流程
首先判断关系表达式的结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
1.2 if…else
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1,执行结束之后直接结束当前结构,继续执行下面的代码。
如果是false就执行语句体2
1.3 if…else与三元运算符的互换
// 需求:使用三元运算判断一个int类型的数据的奇偶性
public static void main(String[] args){
// 定义变量
int x = 100;
// 使用三元运算简化if..else结构
String str = x % 2 == 0 ? "偶数" : "奇数";
System.out.println( x + str );
}
1.4 if…else if…else
if(判断条件1){
执行语句1;
}else if(判断条件2){
执行语句2;
......
}else if(判断条件n){
执行语句n;
}
......
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
不管哪个条件满足,执行结束之后都会直接结束当前结构
二、选择语句
2.1 选择语句-switch
switch(表达式){ // 表达式支持类型:int/byte/short/char/String/Enum
case 常量值1:
语句体1;
break;
case 常量值2;
语句体2;
break;
......
default:
语句体;
break;
}
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
2.2 case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会再判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
三、循环语句
3.1 for循环
for(①-初始化表达式;②-布尔表达式;③-修改布尔表达式){
④-循环体;
}
执行流程
执行顺序:①②③④ --> ②③④ --> ②③④ … 不满足②为止
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
3.2 while循环
初始表达式①
while(布尔表达式②){
循环体③;
修改布尔表达式④;
}
执行流程
执行顺序:①②③④—>②③④—>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况
3.3 do…while循环
初始表达式①
do{
循环体③;
修改表达式④;
}while(布尔表达式②);
执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
四、跳出语句
4.1 break
循环中或者switch选择结构中遇到break关键字会直接退出当前循环或选择结构
4.2 continue
它主要用在循环中,不能使用在其他地方。作用是跳过本次循环,执行本循环的下一次的循环