目录
前言:
1.判断
2.循环
3.课堂笔记
4.思维导图
前言:
判断语句和循环语句都可以大致分为三个部分,第一个部分是固定的语法格式;第二部分是代码的执行顺序,第三部分是判断和循环成立与否的判断条件。
1.判断
1.1
我们来看看 if 的代码执行顺序:
if(5>1){prinrf("5>1\n");
}
if (1<5){prinrf("5>1\n");
}
1.先执行判断语句
if (5 > 1) {
2.判断成立,执行代码块中的语句
printf("5>1\n");
}
3.判断语句永远会被执行
if (1 < 5) {
4.判断条件不成立,不执行剩下的语句
printf("5>1\n");
}
1.2
然后是if-else
的双向判断:
我们来看看if-else的代码执行顺序:
if(1>5){printf("1>5\n");
} else{printf("1<5\n");
}
1.if判断语句第一个执行
if (1 > 5) {
2.判断条件不成立,不执行if代码块中的代码
printf("1 > 5\n");
3.直接执行else语句
} else {
4.以及else代码块中的代码
printf("1 < 5\n");
}
1.3
最后是if-else if-else的多向判断/复杂判断:
我们看看多向判断的代码执行顺序:
if(1>5){printf("1>5\n");
}else if(1==5){printf("1==5\n");
} else {printf("1<5\n");
}
1.if判断语句首先执行,判断条件不成立
if (1 > 5)
2.跳过if语句的代码块,进入else-if的判断,仍然不成立
else if(1 == 5)
3.进入else判断语句
else
4.最后进入else判断语句的代码块
printf("1 < 5\n");
if,else if,else
是互斥关系,程序只会执行其中一个判读分支的代码块。
2.循环
首先是for循环,for循环中用两个分号分为了三个部分:
初始定义;判断条件;迭代操作
2.1
我们看看代码的执行顺序:
for(int i=0;i<3;i++){printf("%d\n",i);
}
1.第一次for循环,先初始定义,然后进行判断
for(int i =0;i < 3;i++) {
2.执行第一次循环代码块
printf("%d\n", i);
}
for(int i=0;i<3;i++){printf("%d\n",i);
}
3.第二次for循环,进行迭代操作,和条件判断
for(int i =0;i < 3;i++) {
4.执行第二次循环代码块
printf("%d\n", i);
for(int i=0;i<3;i++){printf("%d\n",i);
}
5.第三次for循环,进行迭代操作,和条件判断
for(int i =0;i < 5;i++) {
6.执行第三次循环代码块
printf("%d\n", i);
2.2
while循环和do-while循环也是类似的代码执行顺序。
do-while循环和while循环的核心差异在于do-while循环是先执行-再判断,while是先判断-再执行。
没有特殊情况的话,我们推荐while循环。
这是一个死循环,又叫无限循环,我们看看它的执行顺序:
while(true){printf("true!\n");
}
1.循环的判断条件,条件为真
while(true){
2.执行循环的代码块
printf("true!\n");
}
while(true){printf("true!\n");
}
3.循环的判断条件永远为真
while(true){
4.重复执行循环的代码块,永不结束
printf("true!\n");
}
2.3
作为判断和循环的核心之一,判断条件是个很重要的部分,判断条件为真,后续的代码块就会执行;判断条件为假,则不会执行后续的代码块。
判断条件无论是逻辑运算,还是比较运算,还是直接是一个布尔数,本质都是一个布尔数。
2.4
判断和判断之间可以进行嵌套,循环和循环之间也可以进行嵌套,循环和判断之间仍然可以进行嵌套。
嵌套可以无数层,但是我们为了代码可读性和代码简洁性,不推荐太多层的嵌套。
2.5
针对循环代码顺序,我们可以通过break
和continue
来进行更精细化的控制。
break
是终结整体的循环结构,又称大循环;0.
continue
是跳过当下的这一次循环,又称小循环。
3.课堂笔记
1.判断条件为真才会执行代码块里的代码
if判断
if (5 > 1) {
printf("5>1\n");
}
2.当if判断条件不为真时,执行else代码块
if-else 判断
if (1 > 5) {
printf("1 > 5\n");
} else {
printf("1 < 5\n");
}
3.当if判断条件不为真时,执行else if代码块
else if判断
if (1 > 5) { printf("1 > 5\n");
} else if(1 == 5) {printf("1 == 5\n");
} else {
printf("1 < 5\n");
}
4.使用for循环输出0,1,2,3,4
for循环
for(int i =0;i < 5;i++){
printf("%d\n", i);
}
5.while循环先判断再执行
while循环
while(true){
printf("true!\n");
}
6.break的作用为立即退出本层循环; continue语句的作用是跳过本循环中剩余的语句而强制执行下一次循环
break & continue
int i = 0;
while(true){ printf("true!\n");
}i++; if(i < 5){continue; } else { break;}
}
4.思维导图
在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。