分支和循环都是流程控制语句,它们都可以
让程序里的语句不再从上到下顺序
执行
goto语句也是流程控制语句
它可以把任何语句指定成下一条语句
尽量不要使用这条语句
循环里包含其他循环的结构叫多重循环
多重循环可以用来在程序里得到多组相关
数字
外部循环变量变化慢,内部循环变量变化快
while关键字也可以用来编写循环
for关键字编写的循环和while关键字编写
的循环完全可以互相替代
不容易用for关键字编写的循环就可以用
while关键字编写
while循环格式如下
while (逻辑表达式) {
反复执行的语句
}
这个格式表示反复执行大括号里面的语句
直到逻辑表达式结果为假
如果while循环的逻辑表达式永远为真就
成为了死循环(例如1)
while循环里也可以使用break;语句和
continue;语句,效果和for循环里一样
while循环交替执行逻辑表达式的计算和
大括号里面的语句
while循环开始时先计算逻辑表达式的结果
如果第一次计算逻辑表达式的结果就是假
则循环立刻结束,这个时候大括号里面
的语句没有机会执行
do…while关键字也可以用来编写循环
do…while循环格式如下
do {
反复执行的语句
} while (逻辑表达式);
do…while循环小括号后面必须用分号结束
do…while循环也是交替执行逻辑表达式
的计算和大括号里面的语句
do…while循环首先执行大括号里面的语句
do…while循环可以保证至少把大括号里面
的语句执行一次
用户在键盘上输入的数字首先进入输入
缓冲区,scanf标准函数从输入缓冲区
里获得数字并记录到存储区里
先进入输入缓冲区的数据必须首先被处理
如果用户输入的某些数据程序无法处理,
程序就得不到用户以后输入的数据
以下两条语句可以把输入缓冲区里第一个
'\n’字符和它前面的内容都删除(相当于
删除用户某一次输入的所有内容)
scanf("%*[^\n]");
scanf("%*c");
printf标准函数把要显示的内容放在输出
缓冲区里,计算机在合适的时候把输出
缓冲区里的内容显示在屏幕上
在以下四种情况下计算机会把输出缓冲区
里的内容显示在屏幕上
1.如果输出缓冲区里包含’\n’字符就把
它前面的内容显示在屏幕上
2.程序结束后计算机会把程序放在输出
缓冲区里的内容显示在屏幕上
3.当输出缓冲区被充满的时候它里面的内容
会显示在屏幕上
4.可以使用fflush(stdout)语句强制把输出
缓冲区里的内容显示在屏幕上
数组用来代表内存里一组连续的同类型
存储区
这些存储区叫做数组的元素
声明数组时除了提供类型名称,数组名称
之外还需要提供一个整数用来表示
数组里的存储区个数
数组里存储区个数不能改变(声明的时候
包含多少个存储区就只能永远包含
这么多个存储区)
数组通常不会作为整体使用,一般一次只
使用其中的某个存储区
数组里每个存储区都有一个编号,这个
编号叫做数组的下标
有效下标的范围从0开始到存储区个数
减一为止(超过范围的下标不可以使用)
数组名称加下标可以表示数组里的存储区
可以编写for循环依次处理数组里的所有
存储区
循环变量代表数组的所有有效下标
数组应该进行初始化
初始化数组的时候需要把初始化数据写在
一对大括号中间,相邻数字之间用逗号
分开
如果初始化数据个数比存储区个数多就省略
后面的初始化数据
如果初始化数据个数比存储区个数少就把后面
的存储区内容初始化为0
如果初始化数据个数和存储区个数一样就
可以省略数组声明里的存储区个数
数组名称不能代表存储区,所以不能被赋值
数组名称可以代表数组里第一个存储区的地址
假设有如下数组
int arr[5];
0 1 2 3 4 下标
arr **** **** **** **** ****
^
*
*
arr
可以对数组名称进行sizeof计算,计算结果
是数组里所有存储区的总大小