学习打卡03-流程控制
前言:程序中最经典的三种执行顺序
- 顺序结构: 自上而下的执行代码
- 分支结构 : 根据条件,选择对应的代码执行 if switch
- 循环结构: 控制某段代码重复执行 for while do….while
一, 分支结构
1, if
形式1:
if (条件表达式) {
代码;
}形式2:
if (条件表达式) {
代码1;
} else {
代码2;
}形式3:
if (条件表达式1) {
代码1;
} else if (条件表达式2) {
代码2;
} else if (条件表达式3) {
代码3;
}
. . .
else {
代码n;
}
// if语句的{}中只有一行代码的情况,{}可以省略不写: 即
if(布尔表达式)
代码;
2, switch
switch(表达式){
case 值1:
执行代码...;
break;
case 值2:
执行代码...;
break;
…
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
switch分支的执行流程
①先执行表达式的值,再拿着这个值去与case后的值进行匹配。
②与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
③如果全部case后的值与之匹配都是false,则执行default块的代码。
🚩 switch的注意事项:
①表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
即五种常见的类型: byte , short , int , char , String
②case给出的值不允许重复,且只能是字面量/常量,不能是变量。
③正常使用switch的时候,不要忘记写break,否则会出现穿透现象。 示例如下:
// 利用穿透,来实现当输入一二三月,输出春季,四五六月为夏季
public static void main(String[] args) {
String str = "二月";
switch (str) {
case "一月":
case "二月":
case "三月":
System.out.println("春季");
break;
case "四月":
case "五月":
case "六月":
System.out.println("夏季");
default:
System.out.println("输入有误~");
}
总结: 分支结构中什么时候用 if ,什么时候用 switch
// 1: if在功能上远远强大于switch。
// 2: 当前条件是区间的时候,应该使用if分支结构。
// 3: 当条件是与一个一个的值比较的时候,switch分支更合适:格式良好,性能较好,代码优雅。
二,循环结构
1,for循环
for (初始化语句; 循环条件; 迭代语句) {
循环体语句(重复执行的代码);
}
执行的顺序为:
-
执行初始化语句
-
判断循环条件
-
执行循环体语句
-
执行迭代语句
。。。。
循环执行2,3,4 直到循环条件为false
这里的执行循环条件会比其他的地方多执行一遍,即为false的那一遍
2,while循环
初始化语句;
while (循环条件) {
循环体语句(被重复执行的代码);
迭代语句;
}
示例代码:
int i = 0;
while (i < 3) {
System.out.println("Hello World");
i++;
}
3,do-while循环 先执行后判断
初始化语句;
do {
**循环体语句;**
**迭代语句;**
} while (循环条件);
示例代码:
int i = 0;
do {
System.out.println("Hello World!");
i++;
} while( i < 3);
三种循环的区别:
-
for循环 和 while循环(先判断后执行); do...while (先执行后判断)
-
for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。
-
使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
-
其他区别:for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用。
4,死循环 ——- 当想让其一直运行处理时使用
三种形式: 推荐2
(1)
for ( ; ; ) {
System.out.println("Hello World1");
}
(2)
// 经典写法
while (true) {
System.out.println("Hello World2");
}
(3)
do {
System.out.println("Hello World3");
} while (true);
5,循环嵌套
两个或多个循环结构嵌套使用 如下:
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < 7; j++) {
System.out.print("*");
}
System.out.println();
}
// 结果
*******
*******
*******
*******
*******
三,跳转关键字
break : 跳出并结束当前所在循环的执行。
continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行。
使用场景:
break : 只能用于结束所在循环, 或者结束所在switch分支的执行。
continue : 只能在循环中进行使用。