目录
活动地址:CSDN21天学习挑战赛
学习继续哈
Java程序流程控制简介
Java提供了一些流程控制语句,来控制程序的执行流程。
顺序结构(程序默认)
分支结构(if、switch)
循环结构(for、while、do……while)
顺序结构
如果你没有写其他的结构,按照代码的先后顺序,依次执行程序中大多数的代码都是这样执行的。
分支结构
If分支
根据判定的结果(真或假)决定执行某个分支的代码
If分支有三种格式:
格式一:
格式1:
if (条件表达式) {
语句体;
}
执行流程:首先判断条件表达式的结果,如果为true执行语句体,为 false 就不执行语句体。
注意:if 语句中,如果大括号控制的只有一行代码,则大括号可以省略不写。
格式二:
格式2:
if (条件表达式) {
语句体1;
} else {
语句体2;
}
执行流程:首先判断条件表达式的结果,如果为true执行语句体1,为 false 就执行语句体2。
格式三:
格式3:
if (条件1) {
语句体1;
} else if (条件2) {
语句体2;
} else if (条件3) {
语句体4;
}
. . .
else {
语句体n+1;
}
执行流程:
- 先判断条件1的值,如果为true则执行语句体1,分支结束;如果为false则判断条件2的值
- 如果值为true就执行语句体2,分支结束;如果为false则判断条件3的值
- ...
- 如果没有任何条件为true,就执行else分支的语句体n+1。
switch分支
也是匹配条件去执行分支, 适合做值匹配的分支选择,结构清晰,格式良好。
switch(表达式){
case 值1:
执行代码...;
break;
case 值2:
执行代码...;
break;
…
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
执行流程:
- 先执行表达式的值,拿着这个值去与case后的值进行匹配。
- 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
- 如果case后的值都不匹配则执行default代码。
switch分支注意事项:
- 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、 不支持double、float、long。
- case给出的值不允许重复,且只能是字面量,不能是变量。
- 不要忘记写break,否则会出现穿透现象。
switch的穿透性
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
存在多个case分支的功能代码是一样时,可以用穿透性把流 程集中到同一处处理,这样可以简化代码。
循环结构
for 循环
控制一段代码反复执行很多次。
格式:
for (初始化语句; 循环条件; 迭代语句) {
循环体语句(重复执行的代码);
}
while 循环
//while循环格式
初始化语句;
while (循环条件) {
循环体语句(被重复执行的代码);
迭代语句;
}
什么时候用for循环,什么时候用while循环
功能上是完全一样的,for能解决的while也能解决,反之亦然。
使用规范是:知道循环几次:使用for;不知道循环几次建议使用:while。
do-while循环
先执行再判断循环条件。
// do while循环格式
初始化语句;
do {
循环体语句;
迭代语句;
} while (循环条件);
do-while循环的特点:一定会先执行一次循环体。
三种循环的区别
for循环 和 while循环(先判断后执行)
do...while (第一次先执行后判断)
for 和 while 的区别:
for循环和while循环的执行流程是一模一样的。
如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
for循环中,控制循环的变量只在循环中可以使用。While循环中,控制循环的变量在循环后还可以继续使用。
死循环
一直循环的执行下去,如果没有干预不会停止下来。
// 格式
for(;;) {
System.out.println("Hello World");
}
// 经典做法
while(true) {
System.out.println("Hello World");
}
do {
System.out.println("Hello World");
} while (true);
循环嵌套
循环中又包含循环
嵌套循环的特点:外部循环每循环一次,内部循环全部执行完一次。
例如要打印乘法口诀表
for(int i = 1; i <= 9; i++) {
for(int j = 1;j <= i; j++){
System.out.print( j + "x" + i + "=" + i*j + " ");
}
System.out.println("");
}
跳转控制语句介绍
break : 跳出并结束当前所在循环的执行。可以用在嵌套循环中跳出整个外部循环的并立即结束它。
continue: 用于跳出当前循环的当次执行,进入下一次循环。可以用在嵌套循环中跳出外部循环的当次执行,进入外部循环的下一次。
注意事项
break : 只能用于结束所在循环, 或者结束所在switch分支的执行。 continue : 只能在循环中进行使用。
今天就絮叨到这里。