1、选择结构
if语句
if语句格式:
格式1:
if(比较表达式) {
语句体;
}
执行流程:
先计算比较表达式,看其返回值是true还是false
如果是true,就执行语句体;
如果是false,就不执行语句体。
格式2:
if(比较表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
首先计算比较表达式的值,看其返回值是true还是false
如果是true,就执行语句体1;
如果是false,就执行语句体2。
格式3:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
执行流程:
首先计算比较表达式1,看其返回值是true还是false,
如果是true,执行语句体1,if语句结束。
如果是false,接着计算比较表达式2,看其返回值是true还是false。
如果是true,执行语句体2,if语句结束。
如果是false,接着计算比较表达式3,看其返回值是true还是false。
...
如果都是false,就执行语句体n+1。
if语句的注意事项:
A. 比较表达式无论简单还是复杂,结果必须是boolean类型
B. if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略。
建议永远不要省略。
C. 一般来说:有左大括号就没有分号,有分号就没有左大括号
switch语句
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
语句解释:
switch:表示这是switch选择结构
表达式:这个地方的取值是限定的
byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String(字符串)
JDK7以后:byte,short,int,char,枚举,字符串(String)
case:后面跟的是要和表达式进行比较的值
语句体:要执行的代码
break:表示中断,结束的意思,可以控制switch语句的结束
default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
面试题:
byte可以作为switch的表达式吗? 答:可以。
long可以作为switch的表达式吗? 答:不可以。
String可以作为switch的表达式吗? 答:JDK7以后可以。
switch语句的注意事项:
A. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现重复的。
B. default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的的情况给出提示。
C. break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不省略
D. default一定要在最后吗?
不是,可以在任何位置,但是建议在最后
E. switch语句的结束条件:
a:遇到break就结束
b:执行到末尾就结束
2、循环结构
循环语句可以满足循环条件的情况下,反复执行某一段代码,这段被重复的代码被称为循环体语句,当反复执行这个循环体时,需要再合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成
A:初始化语句:
一条或者多条语句,这些语句完成一些初始化操作
B:判断条件语句
这是一个boolean表达式,这个表达式能决定是否执行循环体
C:循环体语句
这个部分是循环体语句,也就是要多次做的事情
D:控制条件语句
这个部分在一次执行循环体结束后,下一次循环判断条件执行前执行,通过用于控制循环条件中的变量,使用循环在合适的时候结束
for循环语句
格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
注意事项:
A:判断条件语句无论简单还是复杂结果都是boolean类型。
B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不可省略。建议永远不要省略。
C:一般来说,有左大括号就没有分号,有分号就没有左大括号。
while循环语句
基本格式:
while(判断条件语句) {
循环体语句;
}
扩展语句:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
while循环和for循环的区别?
1. 使用区别:如果你想在循环结束,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道就用for循环。
2. 因为变量及早的从内存中消失,可以提高内存的使用效率。
do…while语句
基本格式:
do {
循环体语句;
}while(判断条件语句);
扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
for/while/do..while循环语句的区别:
do…while循环至少循环一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环语句。