1、结构语句分类
顺序结构:程序从上向下,依次执行,每一行语句都会执行
选择结构:程序从上向下,根据条件执行对应的语句块
循环结构:程序从上向下,若满足条件,则执行对应的语句块,直到不满足条件为止
2、if语句
语句结构:
(1)基本结构
if (判断条件1)
{
语句块1;//如果判断条件1成立,则执行语句块1;
}
else
{
语句块2;//如果判断条件1不成立,则执行语句块2;
}
(2)多分支结构
if(判断条件1)
{
语句块1;//如果判断条件1成立,则执行语句块1;
}
else if(判断条件2)
{
语句块2;//如果判断条件1不成立,判断条件2成立,则执行语句块2;
}
else
{
语句块3;//如果判断条件1、2均不成立,则执行语句块3;
}
(3)嵌套结构
if (判断条件1)
{
if(判断条件2)
{
语句块1;//如果判断条件1、2均成立,执行语句块1;
}
else
{
语句块2;//如果判断条件1成立,执行语句块2;
}
}
else
{
语句块3;//如果判断条件1不成立,则执行语句块3;
}
注:① 在if结构中可以没有else,不能只有else而没有if
② if与else if表示互斥条件,if等价于else if,所以可以不跟else
③ if结构中可以在if中嵌套,也可以在else中嵌套
④ 在if结构中,如果语句块只有一句,理论上是可以不要{}
3、switch语句
语句结构:
switch (匹配条件)
{
case <选项1>:
语句块1; break;
case <选项2>:
语句块2; break;
....
default:
语句块n + 1; break;
}
注:① switch语句属于匹配性选择,因此要求 匹配条件 是常量、变量或具有确定值的表达式
② case选项没有先后顺序之分,default与case选项也没有先后顺序之分
③ default类似于集合中的补集
④ 当在switch中做出选择时,匹配完选项,若不需要继续匹配,则添加break
if范例:
#include <stdio.h>
int main(int argc,char *argv[])
{
int day = 0;
printf("input:");
scanf("%d",&day);
if(day == 1)
{
printf("外出打球!\n");
}
else
{
printf("宅在家刷剧!\n");
}
return 0;
}
switch范例:
#include <stdio.h>
int main(int argc,char *argv[])
{
int time = 0;
printf("input time:");
scanf("%d",&time);
if(time < 0)
{
printf("input error!\n");
return -1;
}
switch (time / 30)
{
case 0:
printf("a!\n");break;
case 1:
printf("b!\n");break;
case 2:
printf("c!\n");break;
default:
printf("d!\n");
}
return 0;
}