> 流程控制:顺序语句、判断语句、选择语句、循环语句
1.顺序语句:顺序执行,根据编写的顺序,从上到下运行
2.判断语句
1.单if语句
if (关系表达式) {
语句体;
}
首先判断关系表达式结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
2.标准的if…else语句
if (关系表达式) {
语句体1;
} else {
语句体2;
}
首先判断关系表达式结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
3.if…else if…else
if (判断条件1) {
语句体1;
} else if (判断条件2){
语句体2;
}
...
} else if (判断条件n){
语句体n;
} else {
语句体n+1;
}
首先判断关系表达式1结果是true还是false
如果是true就执行语句体1
如果是false就判断关系表达式2结果是true还是false
如果是true就执行语句体2
如果是false就判断关系表达式…结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1
三元运算符可以和if…else语句进行等效替换
3.选择语句
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体1;
break;
...
default:
语句体n+1;
break;
}
执行流程:
首先计算出表达式的值
其次,和case依次次比较,一旦有对应的值,就会执行相应的语句体,在执行过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束。
注意事项:
1.多个case后面的数值不可重复。
2.switch后面的小括号当中只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串,enum枚举
3.switch语句可以很灵活:前后顺序可以颠倒,而且break语句可以不写,但是不写要注意,匹配到一个case,但是没有break,那么就会执行下一个case,直到遇到break为止。这也就是case穿透。
4.循环语句
循环结构的基本组成部分:四个部分:
1.初始化语句,在循环最初执行(有一个不是最初执行的情况,下面学的时候注意一下),而且只做唯一一次。
2.条件判断:如果成立,循环继续,如果不成立,循环退出。
3.循环体:重复要做的事情内容,若干行语句。
4.步进语句:每次循环之后都要进行的扫尾工作。每次循环结束之后,都要执行一次。
1.for循环
格式:
for(初始化表达式1;布尔表达式2;步进表达式4) {
循环体3;
}
执行流程
执行顺序:1234 --> 234 --> 234 --> … —> 2不满足为止。
2.while循环
while循环的标准格式:
while(条件判断) {
循环体;
}
扩展格式:
初始化表达式;
while(条件判断) {
循环体;
步进语句;
}
3.do…while循环
do…while循环的标准格式:
do {
循环体;
} while (条件判断);
扩展格式:
初始化语句;
do {
循环体;
步进语句;
} while(条件判断);
三种循环的区别
1.如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环至少会执行一次。
2.for循环的变量在小括号定义,只有在循环内部才可以使用。while循环和do-while循环初始化语句本身就在外面,所以循环出来之后还可以继续使用。
关于循环的选择,建议:
凡是次数确定的场景多用for循环;否则多用while循环。
循环控制语句
1.break–【跳出】
break关键字有两种用法:
1.可以用在switch语句中,一旦执行,整个switch语句立刻结束。
2.可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打断循环。
2.continue–【跳过】
continue关键字:一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
死循环
永远停不下来的循环叫做死循环
标准格式:
while(true) {
循环体;
}
注意:在死循环之后的语句无法执行,编译会报错。
嵌套循环
定义:是指一个循环的循环体是另一个循环。
格式:
for(初始化表达式1;布尔表达式2;步进表达式7) {
for(初始化表达式3;布尔表达式4;步进表达式6) {
循环体5;
}
}
执行顺序:123456 --> 456 --> 723456 --> 456
外循环一次,内循环多次。