1.什么是流程控制?
程序代码执行的顺序
2.流程控制的分类
①顺序执行
②选择执行
定义:某些代码可能执行,也可能不执行,有选择的执行某些代码
分类:
if:
1. if最简单的用法
格式: if(表达式)
语句;
功能: 如果表达式为真,执行语句;如果表达式为假,语句不执行
2. if的范围问题
上述输出为bbbb,说明下面一个printf不是属于if范围内的。
1. if(表达式)
语句A;
语句B;
解释: if只能控制语句A的执行与不执行;无法控制语句B的执行与不执行。或者说,语句B一定会执行
2. if(表达式)
{
语句A;
语句B;
}
此时,语句A和语句B均可以执行。
由此可见:if默认只能控制一个语句的执行或者不执行;如果想控制多个语句的执行或不执行就必须把这些语句用{}括起来。
例如:
3. if...else...的用法
因为VC++只能识别出后缀为.c或者.cpp的文件,之前命名的时候没有加会自动加,但命名上面文件名中包含了.,就会自动认为这个点就是文件类型。
解决方法:在文件名后加上.c或者.cpp
下面的printf语句不属于if...else中,输出结果为aaaa和cccc。
4. if...else if...else...的用法
一定要理解该程序为何出错。
5. C语言对真假的处理
非零为真,零就是假;真用1表示,假用0表示
6. if举例——求分数的等级
注意::
*90 <= score <= 100无法达到判断score是否在90-100之间的功能
为什么?
这个式子永远为真,会先执行左边。 判断90是否小于score,无论是真还是假,结果不是1就是0。再执行右边,1和0一定小于100,这个逻辑表达式一定为真
写成:score >= 90 && score <= 100
7. if的常见问题解析
1)互换两个数字
# include<stdio.h>
int main(void)
{
int i = 3;
int j = 4;
int t;//定义临时变量
t = i;
i = j;
j = t;
//完成i和j的互换
printf("i = %d,j = %d\n",i,j);
return 0;
}
2)对任意三个数字进行排序
# include<stdio.h>
int main(void)
{
int a,b,c;
int t;
printf("请输入三个整数:");
scanf("%d %d %d",&a,&b,&c);
//编码完成a是最大值,b是中间值,c是最小值
if(a < b)
{
t = a;
a = b;
b = t;
}
if(a < c)
{
t = a;
a = c;
c = t;
}
if(b < c)
{
t = b;
b = c;
c = t;
}
printf("%d %d %d\n",a,b,c);
return 0;
}
③循环执行
利用流程控制可以解决所有的问题!