Java基础语法02-流程控制-if-switch-for-while
if(条件表达式){
语句体;
}
-
首先判断条件表达式看其结果是true还是false
-
如果是true就执行语句体
-
如果是false就不执行语句体体
if(关系表达式) {
语句体1;
}else {
语句体2;
}
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}
...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
在if的语句块中,或者是在else语句块中,
执行的特点:
(1)如果是嵌套在if语句块中的 只有当外部的if条件满足,才会去判断内部的条件
(2)如果是嵌套在else语句块中的 只有当外部的if条件不满足,进入else后,才会去判断内部的条件
if()
else //当条执行语句只有一句的时候我们可以省略花括号
switch(表达式){
case 常量值1:
语句块1;
【break;】
case 常量值2:
语句块2;
【break;】
。。。
【default:
语句块n+1;
【break;】
}
(1)入口
①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;
②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;不管default在哪里
(2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”,即可能发生贯穿
(3)出口
②中断出口:遇到了break等
(1)switch(表达式)的值的类型,只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(JDK1.5之后枚举、JDK1.7之后String)
(2)case后面必须是常量值,而且不能重复
for(初始化语句①; 循环条件语句②; 迭代语句④){
循环体语句③
}
for(;;){
循环体语句块; //如果循环体中没有跳出循环体的语句,那么就是死循环
}
(2)循环条件必须是boolean类型
(3)如果循环条件语句②省略的话,就默认为循环条件成立
执行流程:
-
第一步:执行初始化语句①,完成循环变量的初始化;
-
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
-
如果是true,执行第三步;
-
-
-
第三步:执行循环体语句③
-
第四步:执行迭代语句④,针对循环变量重新赋值
-
第五步:根据循环变量的新值,重新从第二步开始再执行一遍
while (循环条件语句①) {
循环体语句②;
}
while(true){
循环体语句; //如果此时循环体中没有跳出循环的语句,也是死循环
}
while(循环条件)中循环条件必须是boolean类型
执行流程:
-
第一步:执行循环条件语句①,看循环条件语句的值是true,还是false;
-
如果是true,执行第二步;
-
如果是false,循环语句中止,循环不再执行。
-
-
-
第三步:循环体语句执行完后,重新从第一步开始再执行一遍
2、while循环语句扩展格式:
初始化语句①;
while (循环条件语句②) {
循环体语句③;
迭代语句④;
}
执行流程:
-
第一步:执行初始化语句①,完成循环变量的初始化;
-
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
-
如果是true,执行第三步;
-
如果是false,循环语句中止,循环不再执行。
-
-
第三步:执行循环体语句③
-
第四步:执行迭代语句④,针对循环变量重新赋值
-
第五步:根据循环变量的新值,重新从第二步开始再执行一遍
do {
循环体语句①;
} while (循环条件语句②);
(2)do{}while();最后有一个分号
(3)do...while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
-
第一步:执行循环体语句①;
-
第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;
-
如果是true,执行第三步;
-
如果是false,循环语句终止,循环不再执行。
-
-
第三步:循环条件语句执行完后,重新从第一步开始再执行一遍
2、do...while循环语句扩展格式:
初始化语句①
do {
循环体语句②;
迭代语句③;
} while (循环条件语句④);
-
第一步:执行初始化语句①,完成循环变量的初始化;
-
第二步:执行循环体语句②;
-
第三步:执行迭代语句③,针对循环变量重新赋值;
-
第四步:执行循环条件语句④,看循环条件语句的值是true,还是false;
-
如果是true,根据循环变量的新值,重新从第二步开始再执行一遍;
-
如果是false,循环语句中止,循环不再执行。
-
-
do...while循环至少执行一次循环体语句
-
for和while循环先循环条件语句是否成立,然后决定是否执行循环体,至少执行零次循环体语句
-
-
从循环变量的生命周期角度分析
-
for循环的循环变量在for()中声明的,在循环语句结束后,不可以被访问;
-
while和do...while循环的循环变量因为在外面声明的,所以while和do...while结束后可以被继续使用的;
-
-
如何选择
-
遍历有明显的循环次数(范围)的需求,选择for循环
-
遍历没有明显的循环次数(范围)的需求,循环while循环
-
如果循环体语句块至少执行一次,可以考虑使用do...while循环
-
本质上:三种循环之间是可以互相转换的,都能实现循环的功能
-
-
三种循环结构都具有四要素:
-
(1)循环变量的初始化表达式
-
(2)循环条件
-
(3)循环变量的修改的迭代表达式
-
(4)循环体语句块
for(初始化语句①; 循环条件语句②; 迭代语句⑦) {
for(初始化语句③; 循环条件语句④; 迭代语句⑥) {
循环体语句⑤;
}
}
for(;;) //当语句块只有一句或其if,for语句时,{}可以省略,也称复合语句。但是不推荐
语句块;