条件语句
流程控制语句
顺序结构
从上到下,依次执行
选择结构
按照不同的选择,执行不同的代码
循环结构
做一些重复代码
if语句
3种格式:
- 格式1:
if(比较表达式){
语句体;
}
**执行流程**:
判断比较表达式的值:看是ture 还是 false;
如果是ture,执行语句体;
如果是false,不执行语句体;
- 格式2:
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}
**执行流程**:
判断比较表达式1的值:看是ture 还是 false;
如果是ture,执行语句体1;
如果是false,判断 比较表达式2: 看是ture 还是 false;
如果是ture,执行语句体2;
如果是false,不执行语句体2;
- 格式3:
if(比较表达式1)){
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else{
语句体N;
}
**执行流程**:
判断比较表达式1的值:看是ture 还是 false;
如果是ture,执行语句体1;
如果是false,判断 比较表达式2: 看是ture 还是 false;
如果是ture,执行语句体2;
如果是false,判断 比较表达式N: 看是ture 还是 false;
如果是ture,执行语句体N;
如果是false,不执行语句体N;
注意事项
1. 无论表示式是简单还是复杂,结果都是boolean值
2. if的语句体是一句,则可以省略大括号。如果语句体不是一句,则不可以省略大括号。
**建议:**永远不要省括号
3. 一般来说,有左大括号就没有分号,有分号就没有左大括号
4. else后面没有if是不会出现表达式
5. 3种格式其实是一条语句,有一条语句执行,别的语句就不再执行
6. else总是与最近未配对的if配对且最近的if没有被大括号隔离
7. else不能单独使用,它必须与if配合使用。
swtich
格式
switch(表达式){
case 值1:
}
格式解释说明:
switch:说明这是switch语句
表达式:可以是byte,short,int char
jdk5以后可以用枚举
Jdk7以后可以用字符串
case:后面的值就是要和表达式进行比较的值
break:表示程序到这里中断,跳出switch语句
default:如果所有的情况都不匹配,就执行这里,相当于if里面的else
执行流程:
首先计算表达式的值
和每一个case进行匹配,如果有就执行相应的语句,看到break结束
如果没有匹配,就执行default的语句体
注意事项:
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示
特殊情况:
case就可以把值固定。
A,B,C,D - break可以省略吗?
可以省略,但结果可能不是我们想要的。会出现一个现象,case穿透,最终我们建议不要省略 - default一定要在最后吗?
不是,可以在任意位置,但是建议在最后 - switch语句的结束条件
a.遇到break就结束
b.执行到末尾就结束
循环
有三种:for,while,do…while
while 循环
格式:
while(判断条件语句){
循环体语句;
}
扩展格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
通过查看这个格式,我们就知道while循环可以和for循环等价转换
do…while 循环
格式:
do{
循环体语句;
}while(判断条件语句);
扩展格式:
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
for 循环语句
格式:
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
执行流程:
- 执行初始化语句
- 执行判断条件语句
- 执行循环语句
- 执行控制条件语句
- 回到2
注意事项
- 判断条件语句无论简单还是复杂,结果都是boolean类型
- 循环体语句如果是一条,可以省略大括号,但是不建议
- 有分号就没有左大括号,有左大括号就没有分号
循环使用的注意事项(死循环)
- 一定要注意修改控制条件,否则容易出现死循环
- 最简单的死循环格式
while(true){...}
for(;;){}
控制跳转语句
break :中断的意思
- 用在循环和switch语句中,离开此应用场景无用
作用
a:跳出单层循环
b: 跳出多层循环,需要标签语句的配合
continue:继续
- 用在循环中,离开此应用场景无用
- 作用:
跳出单层循环的一次,可以继续下一次循环
return:返回
- 用于结束方法
- 一旦遇到return,程序就不会继续往后执行