1.顺序结构
2.判断语句
if语句第一种格式:
if(关系表达式){
语句体;
}
if语句第二种格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
if语句第三种格式:
if(关系表达式1){
执行语句1;
} else if (判断条件2) {
执行语句2;
} ...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
if语句三元符可以互换
3.选择语句
switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。
上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接 运行完整体switch。
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。
4循环语句
for循环
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③;
}
执行流程:①②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化 ②负责判断是否满足循环条件,不满足则跳出循环 ③具体执行的语句 ④循环后,循环条件所涉及变量的变化情况
特征:明确循环次数
while循环
标准格式:
while(判断语句){
循环体
}
扩展格式:
初始化语句
while(判断语句){
循环体
步进语句
}
执行流程:①②③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句。 ④循环后,循环变量的变化情况。
特征:不知道循环次数
do-while循环
标准格式:
do {
循环体
} while (条件判断);
扩展格式:
初始化语句①
do {
循环体③
步进语句④
} while (条件判断)②
执行顺序:①③④>②③④>②③④…②不满足为止。 ①负责完成循环变量初始化。 ②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句 ④循环后,循环变量的变化情况
三种循环的区别:
1.如果条件从来都没有满足过,那么for循环和while循环将会执行0次,单do-while循环至少会执行一次
2.for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用
Break
1.可以用在switch语句当中,一旦执行起来,整个switch语句立刻结束
2.还可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打断循环
关于循环的选择,有一个小建议:
凡是次数确定的场景多用for循环;否则多用while循环。
Continue
一旦执行,立刻跳过当前次循环剩余类容,马上开始下一次的循环
永远停不下来的循环,叫做死循环。
死循环:
死循环的标准格式:
while (true) {
循环体
}
嵌套循环:是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总 共的循环次数=外循环次数*内循环次数
标准格式:
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程: 执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥ 外循环一次,内循环多次。 比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。
|
|