流程控制:
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果 有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现 我们要完成的功能。
顺序结构:
根据编写的顺序,从上到下运行
三种流程控制:
顺序流程(结构)、选择流程(结构)、循环流程(结构)
顺序流程(结构):从上到下依次执行
选择流程(结构):代码中出现选择语句,选择语句需要对一些条件作出判断,从而执行对应的代码
选择语句分为if条件语句和switch条件语句
循环流程(结构):可以让代码在满足其语句条件时重复执行
Java中的循环语句结构有三种,分别是:for语句、while语句、do...while语句
if 条件语句
if语句三种语句
if
if语句是指如果满足其某种条件就进行某种处理
if语句格式:
if(布尔表达式){
语句体;
}
if...else
if..else语句是指如果满足其某种条件就进行某种处理否则进行另一种处理
If..else语句格式:
if(布尔表达式){
语句体1;
}else{
语句体2;
}
if...else if..else
if...else if..else可以对多个条件进行判断,进行多种不同的处理
if...else if..else语句格式:
if(布尔表达式1){
语句体1;
}else if(布尔表达式2){
语句体2;
}
.....
}else if(布尔表达式N){
语句体N;
}else{
语句体N+1;
}
switch选择语句
switch语句只能对某个表达式的值做出判断,从而决定执行什么代码
switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
注意:
表达式中的值需要和case中的常量值类型相匹配。
在switch中的表达式只能是byte、short、int、char、Enum(枚举值)、String(字符串)。用其它的类型值编译会报错
break不能漏写,否则会出现case穿透性,改变逻辑
case穿透性:不断的判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束
for循环语句
for ( 初始化语句① ; 判断条件语句② ; 控制条件语句④ ) {
循环体语句③
}
注意:
初始化语句可以使用任何的数字
判断语句,一定要保证条件有边界,否则就是死循环了
控制语句可以变通,可以是++也可是 -- ,目的是让循环变化量起到变化
这里的循环变量(赋给初始化的值)出了循环结构就不能使用了
初始化的值也可以定义在外面,那么出了循环结构也可以访问
控制变量可以放到循环体中
while循环语句
while循环语句的格式:
初始化语句①
while ( 条件判断② ) {
循环体语句③
条件控制语句④
}
do while循环语句
do while循环语句格式:
初始化表达式①
do{
循环体③
条件控制语句④
}while(条件判断语句 ②); 这里有分号结束
注意:
while后面有分号结束
无论如何会先执行一次,然后再去做条件判断是否继续执行
循环语句的区别
for和while的区别:
代码结构不同是最大的区别
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,while循环结束还可以继续使用,如果你想继续使用,就用while
嵌套循环
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。
while、do...while、for循环语句都可以进行嵌套,并且他们之间也是可以进行相互嵌套
for嵌套循环格式:
for(初始化表达式①; 循环条件②; 控制条件语句⑦) {
for(初始化表达式③; 循环条件④; 控制条件语句⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:
假如外层循环执行2次,内循环执行次数2次执行顺序:
第一次循环:①②>③④⑤⑥>④⑤⑥>④
第二次循环:⑦②>③④⑤⑥>④⑤⑥>④>⑦②
变量作用域
找到变量所在的最近一对{ },从这个变量定义开始到到右`}`结束,都是这个变量的作用范围
变量只有在其作用域范围之内使用