顺序结构
从上至下,按顺序执行代码
选择结构
1.if语句
01零分支
if (条件)
表达式;
02双分支
详见第10篇
if (条件)
{
...
}
else
{
...
}
03多分支
使用if嵌套
if (条件1)
表达式1
else if (条件2)
表达式2
else if (条件3)
表达式3
else if (条件4)
表达式4
...
else
表达式n
//以if打头,else if居中,else殿后
也可使用{}内放代码块,执行一个条件下的多条语句
例
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
if (a < 0)
printf("A");
else if (a >= 0 && a < 7)
printf("B");
else if (a >= 7 && a < 30)
{
printf("C");
printf("!");
}
else
printf("D");
}
注意:不建议写成(0<=a<7) ,用&&(与)连接
分析:0<=a<7从左向右执行
判断0<=8条件为真,0<=8式子程序改成了1,1<7,条件成立,打印B(改成1的原因见第14篇)
练习:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("A");
else
printf("B");
return 0;
}
求执行结果
结果未打印A也未打印B
分析:else不与if (a==1)匹配 与 if (b==2)匹配
注意:else与距离最近的if匹配 ,尤其注意书写的代码风格
实际上:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("A");
else
printf("B");
}
return 0;
}
小贴士:
建议写成1==a,2==b
有时误写成a=1,b=2编译器不会报错,而1=a,2=b则会,由此减少错误
写判断句时建议常量写在左