一:顺序结构
顺序向下执行
二:分支结构
if格式1:if (关系表达式) { 执行流程:1.先计算关系表达式的值,2.如果为true,则
语句体; 执行语句体,否则不执行 3.继续执行后面的其
} 他语句
ps:1.大括号的开头可以令起一行,但是建议写在第一行的末尾
2.在语句体中,如果只有一行代码,可以不写大括号(最好不要省略)
3.对一个布尔类型的变量进行判断,不要用==,直接把变量放在关系表达式里面
eg:boolean flag = true;
if (flag) {
System.out.println ("flag的值是True");
}
if格式2:if (关系表达式) { 1.首先计算表达式的值
语句体1; 2.如果表达式的值为true,执行语句体1
} else { 3.如果表达式的值为false,执行语句体2
语句体2; 4.继续执行后面的其他语句
}
if格式3:if(关系表达式1){ 1. 首先计算关系表达式1的值
语句体1; 2.如果是true,就执行语句体1
} else if (关系表达式2) { 3.如果是false,就计算关系表达式2
语句体2;
}... 4. ......
} else { 5.如果以上的关系表达式都是false,执行
语句体 n + 1; 语句体n+1
}
switch格式:switch (表达式) { 1.首先计算表达式的值
case 值1: 2.依次和case后面的值进行比较,
语句体1; 如果有对应的值,则执行对应的语句,
break; 执行到break就会停止。
case 值2: 3.如果没有对应的值,则会执行default里面的
语句体2; 语句体,然后结束整个switch语句
break;
.....
defult:
语句体n+1;
break;
}
ps:1.表达式的值可以为:byte,short,int,char,枚举(JDK5以后),String(JDK7之后)
2.case后面的值只能是字面量,不能是变量
switch的其他知识点
1.default的位置和省略:位置:default的位置不一定是在最下面,也可以在上面
省略:default可以省略,不会报错,但不建议
2.case穿透:就是语句体中没有写break导致的,首先是拿着表达式的值去匹配下面的
每一个case,如果匹配到了,就执行语句体,但是如果语句体里没有
break,就会导致程序一致向下执行后面的case的语句体,知道break或
右边大括号为止。
3.switch新特性:case的格式改变了,这种写法不需要break,也不会case穿透
case 1 : -> case 1 -> {
语句体; 语句体;
break; }
-> case 1 -> 语句体;
4.switch和if的第三种格式的各自使用场景
if的第三种格式:一般用于对范围的判断
switch:一般用于把有限的数据列出来,任选其一
三:循环结构
for循环:for (初始化语句;条件判断语句;条件控制语句){
循环体;
}
while循环:初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
for循环和while循环的区别:for循环的控制循环的变量在循环内部,当循环结束后就不能访问
for循环知道循环的次数
while循环的控制变量在循环外部,循环结束也可以访问
while循环不知道循环的次数,只知道循环结束条件
do...while循环:初始化语句: //do...while循环先循环后判断,至少执行一次
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
无限循环:1 for (;;) { sout }
2 while (true) { sout }
3 do { sout } while (true) ;
跳转控制:continue:跳过本次循环,继续循环
break:结束循环