前言
学习之路需深耕细作,切勿轻视任一知识点,因其存在必蕴含深意
- 流程控制结构(如条件语句、循环语句等)使得代码的逻辑更加清晰,易于理解和维护。就是这样的一个结构才让代码活了起来。仿佛代码已经有了逻辑,有了表达。
判断
1. if()
- 作为最简单的判断语句,它就像一个保安,你要让保安确定你的身份你才能进去,所以
()中是一个布尔类型的表达式,只有当值为真才会往下执行。
if (布尔表达式) {
// 如果条件为 true,则执行该代码块
}
2. if...else
- 它只是比
if()多了一个选项,if()判断为假则不往下执行,if...else的意思是当判断为真则执行if控制的语句,判断为假则执行else控制的语句
if(){
// 如果条件为 true,则执行该代码块
}else{
// 如果条件为 false,则执行该代码块
}
3.多分支if...else
- 当你遇到不只有真和假两种情况时,可能需要多分支的
if...else来提供更多的选择。
int grade = 88;
if(grade < 60){
print("不及格");
}else if((60 <= grade) & (grade< 80)){
print("及格");
}else if((80 <= grade) & (grade<= 100)) {
print("优秀");
}
4.Switch
- 匹配一个表达式,根据匹配的表达式执行相应的值。可在合适的地方代替
多分支if...else
String season = "秋天";
switch (season) {
case "春天":
print("我爱春天");// 执行代码块 1
break;
case "夏天":
print("我爱夏天");// 执行代码块 2
break;
case "秋天":
print("我爱秋天");// 执行代码块 2
break;
case "冬天":
print("我爱冬天");// 执行代码块 2
break;
default:
print("我谁都不爱");// 默认执行代码块
//最后输出我爱秋天
注意:因为是匹配一个表达式,当匹配成功将不会再往下进行匹配,所以每一个匹配语句都有一个break表达式来控制。当匹配失败则执行default控制的语句
循环
1. for()循环
1.1 基本表达式
for(i = 0 ; i < 10 ; i++){
print(i)
}
//解释
for(初始化表达式;判断条件;更新表达式){
执行循环体中的代码
}
- 初始化表达式:在循环体前执行一次,简单理解为“从哪里开始”。
- 判断条件:对是否进入循环体进行判断。
- 更新表达式:在循环体后执行一次,简单理解为“下一次从哪里开始”。
1.2 for循环流程图
2. while()循环
2.1 基本表达式
看着有点像是把for循环的初始化表达式和更新表达式换了一下位置
int i = 0;
while (i < 5) {
printf(i);
i++;
return 0;
}
2.2 do...while
- 与
while()不同点在于先执行一遍循环体再来进行判断是否进入下一次循环。 - 适用于需要先执行一遍循环体的场景。
int i = 0;
do {
printf(i);
i++;
} while (i < 5);
return 0;
跳转
1. return
- 如果函数定义了返回类型(非
void),则return语句必须返回一个与该类型兼容的值。如果函数没有定义返回类型(即void),则return语句可以不带任何值,仅用于终止函数的执行。
2. berak
- 跳出当前循环,不再进行下一次循环
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时退出循环
}
print(i);
}
// 输出: 1 2 3 4
3.continue
- 跳出当前循环,继续下一次循环
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // 如果 i 是偶数,跳过当前迭代
}
print(i);
}
// 输出: 1 3 5 7 9
标签
- 用于
标记循环或switch语句,以便在嵌套结构中精确控制跳转 - 使用
break或continue结合标签
outerLoop://标记跳转到的地方
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
break outerLoop; // 退出外层循环
}
print('i: $i, j: $j');
}
}
//输出:
//i: 0, j: 0
//i: 0, j: 1
//i: 0, j: 2
//i: 1, j: 0
- 可以这样理解:
break和continue是控制跳转的,只是跳出当前循环,例如上述例子中有两个for循环嵌套,单纯使用break只会跳出里面的for循环,外层循环还会继续。标签就是用来控制跳转时跳到什指定位置。
总结
- 流程控制它不仅是实现程序逻辑的基础,也是提高代码质量、性能和可维护性的关键。
if语句就像保安,只有保安确定为真,才能进去- 循环语句就像将军点兵,预设条件筛选士兵,逐一派遣执行任务。完成一轮后,重回起点继续筛选,直至所有符合条件的士兵均完成任务或再无合格者。如此,循环高效处理数据,避免重复编码