C语言基础:06~07天笔记
内容提要
- 回顾
- 循环结构
回顾
分支结构:
单分支:if…
双分支:if…else, 表达式1? 表达式2:表达式3
多分支
①:if…else…嵌套
②:if…else if…else…
③switch…case…
循环结构
什么是循环结构
代码在满足某种条件的前提下,重复执行,就叫做循环结构.
循环的分类
-
无限循环:其实就是死循环,程序设计中尽量避免无限循环,如果非要使用,那么这个循环一定要在可控范围内.
-
有限循环:循环限定循环次数或者终止循环的条件.
循环的构成
while
语法:
//写法1:省略{}
while (循环条件)(表达式)
循环语句; //单语句
//写法2:保留{}
while (循环条件)
{
循环语句; //可以是单语句,可以是复合语句
}
说明:
-
循环条件的返回值必须是逻辑值(布尔类型,条件表达式只能是关系表达式或者逻辑表达式,可以是具体的值(0,非=,true,false)). 在C语言中,使用0和非0来表示关系表达式或者逻辑表达式的值,如果引入<stdbool.h>也可以使用true或者false来表晒
-
{}包起来的内容整体称之为循环体 -
我们要在循环体中控制循环条件的变化, 否则产生死循环
执行过程:
特点:
先判断后执行,循环体语句有可能一次都不执行
案例:
- 需求:求1~100的累加和
- 分析:
- 创建一个变量sum,用来接收累加和
- 创建一个变量i, 用来表示计算数,我们给i给个初始值 i = 1,每次循环的时候,让i++
- 在循环中,使用sum += i,完成累加和运算
- 同时我们要限定i的范围 i <= 100
- 第一次 sum += i
#include <stdio.h>
int main(int argc,char *argv[])
{
//定义两个变量,sum存储累加和,i用来存储计算数(可变变量
int sum = 0 , i = 1;
//写一个循环实现类和计算
while(i <= 100)
{
// 累加和计算
sum += i;//sum = sum + i
//给循环变量赋值,用来影响循环条件,保证循环条件有出口
i++;
}
printf("1~100的累加和为:%d\n",sum);
return 0;
}
案例:
-
需求: 求1~100的偶数和
-
分析:


死循环:
while(1)
for…
原则上: for循环能实现的,while循环一定可以实现,for循环可以看作是while循环的一种特殊写法
语法:
for (①表达式1; ②表达式2; ③表达式3)
{
④ 循环语句; //如果单语句,可以省略{};如果是复合语句,不能省略
}
说明:
1. `()`中可以只保留两个分号;;,举例`:for(;;)`,此时就是for循环的死循环
1. `表达式1`是`循环变量`,我们需要赋初值,循环变量可以是==单个==,也可以是==列表,==多个循环变量使用逗号分隔
-
表达式2是循环条件,用来限制循环的次数,循环条件支持关系表达式,逻辑表达式,举例:i<10 && j<=1 -
表达式3是改变循环变量(条件),支持列表.这里可以使用赋值表达式,举例:i++,j++ -
执行顺序:①②④③→ ②④③ →…→②

执行过程

特点:先判断,后执行,循环体语句有可能一次都不执行
循环变量的初始化,举例: int i = 2;
循环条件: 举例: i <= 100
循环变量的更新: 举例: i++
案例:
需求:求斐波拉切数列前20个
分析:
斐波拉切数列指的是符合一定规则的数列,举例:1,1,2,3,5,8…
斐波拉切数列特点是第三个等于前两个的和.最开始的第1,2个数是固定的,都是1
#include <stdio.h>
int main(int argc,char *argv[])
{
int f1 = 1; //前1个数字
int f2 = 2; //后1个数字
int i = 1; //循环变量,控制循环次数,我们需求是输出20个,只需要10次
for (;i <= 10; i++)
{
printf("%12d%12d\n",f1,f2);
f1 += f2;
f2 += f1;
}
return 0;
}
运行结果:

死循环:
for(表达式;;表达式3)
for(;;)
直到型循环的实现’
特点:先执行,后判断,不管条件是否满足,至少执行一次
代表::do …while. goto(已淘汰)
do…while
语法:
do
{
循环体;
} while(循环条件);

特点: 先执行,后判断,不管条件是否满足,循环体语句至少执行一次
案例:
标签: 表明目标的代码的位置,是一个不加""的字符串,
循环结构的典型应用场景
- 求累和:举例:
1+2+3+...+n - 求累积:
1*2*3 - 求均值:举例:(1+2+3+…10)/100
- 求极值:
break与continue
break
功能:
① 用来switch中,用来跳出switch的case语句,如果case没有break,可能会产生case穿透
②用在循环中(while do…while for)提前结束循环,也就是跳出整个循环
说明:
①break不能用于循环语句和switch语句之外的其他任何语句之中
②break只能终止并跳出最近一层的循环结构

案例:
- 需求: 四海同学参与运算符考试,如果考试及格就跳出循环,否则就一直考试
continue
功能: continue语句不会结束整个循环,而是跳过本次循环尚未执行的语句,进入下一次循环,
说明:
①仅用于循环语句中,
②在嵌套循环的情况下,continue语句只对包含它的最近一次循环其作用,
2万+

被折叠的 条评论
为什么被折叠?



