顺序结构
1.顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行
2.程序从上到下逐行进行,中间没有任何判断和跳转
3.Java中定义变量时采用合法的前向引用
public class Test{ //正确
int num1 = 1;
int num2 = num1 + 2;
}
public class Test{ //错误
int num2 = num1 + 2;
int num1 = 1;
分支结构
1.if语句
(1)格式
if(关系表达式){
语句体;
}
(2)执行流程
1.首先计算关系表达式的值
2.如果关系表达式的值为true就执行语句体
3.如果关系表达式的值为false就不执行语句体
4.继续执行后面的其他语句
(3)说明
1.在语句体中,如果只有一句话代码,大括号可以省略不写,建议写上
int a = 100; //相当于两条语句:1.定义变量a,2.给变量a赋值为100
2.如果对一个布尔类型的变量进行判断,尽量不要使用“==”号,直接把变量写在小括号中
2.if-else语句
(1)格式
if(关系表达式){
语句体1;
} else {
语句体2;
}
(2)执行流程
1.首先计算关系表达式
2.如果关系表达式的值为true就执行语句体1
3.如果关系表达式的值为false就执行语句体2
4.继续执行后面的其他语句
3.if-else的嵌套语句
(1)格式
if(关系表达式1){
语句体1;
} else if(关系表达式2){
语句体2;
}
……
else {
语句体n;
}
(2)执行流程:
1.首先计算关系表达式1的值
2.如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
3.……
4.如果所有关系表达式值为false,就执行语句体n
4.switch语句
(1)格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break
……
default:
语句体n;
break;
}
(2)执行流程
1.首先计算表达式的值
2.依和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
3.如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句
(3)说明
1.表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是string
2.case:后面跟的是要和表达式进行比较的值
3.default:表示所有情况都不匹配的时候,就执行该处的内容
4.case后面的值只能是字面量,不能是变量
5.case给出的值不允许重复
6.default可以省略,语法不会有问题,但是不建议省略,default可以写在任意位置
循环语句
1.for
(1)格式
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
(2)执行流程
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,执行循环语句体
3.执行条件控制语句
4.回到2继续执行条件判断语句
2.while
(1)格式
初始化语句体;
while(条件判断语句){
循环体语句;
条件控制语句;
}
(2)执行流程
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,执行循环语句体
3.执行条件控制语句
4.回到2继续执行条件判断语句
3.do-while
(1)格式
初始化语句;
do{
循环体语句;
条件控制语句;
} while(条件判断语句);
(2)执行流程
初始化语句--->循环体语句--->条件控语句--->条件判断语句--->(false)其他语句
--->(true)循环体语句...(重复执行后面的语句)
4.无限循环
(1)定义
无限循环:循环一直停不下来
(2)格式
1.for(;;){
循环体语句;
}
2.while(true){
循环体语句;
}
3.do{
循环体语句;
}while(true)
(3)说明
无限循环的下面不能再写其他代码了,因为循环永远停不下来,下面的代码永远执行不到
5.跳转控制语句
(1)break
(1)用于终止某个语句块的执行,一般使用在switch或者循环中
(2)格式
{
……
break;
……
}
(3)break语句可以指定退出哪层,如果没有指定break,默认退出最近的循环体
(2)continue
(1)用于结束本次循环,继续执行下一次循环
(2)continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是那一层循环
(3)格式
{
……
continue;
……
}