1. 什么是语句
C语言的语句可以分为以下五类:
-
表达式语句
-
函数调用语句
-
控制语句:
-
条件判断语句/分支语句:
-
if语句,switch语句
-
-
循环执行语句:
- do...while语句,while语句,for语句
-
转向语句:
- break语句,goto语句,continue语句,return语句
-
-
-
复合语句
-
空语句
2. 分支语句(选择结构)
(1)if语句
0表示假,非0表示真;
如果条件成立,要执行多条语句时,必须加上大会括号“{ }”。【如果不加“{ }” ,if 和 else默认只能控制一条语句】
#include<stdio.h>
int main()
{
int age;
scanf("%d",&age)
if(age<18)
printf("青少年\n");
else if(age>=18 && age<40)
printf("青年\n");
else if(age>=40 && age<60)
printf("壮年\n");
else if(age>=60 && age<100)
printf("老年\n");
else
printf("寿星\n");
return 0;
}
补充:以下格式不规范,但无语法错误的格式
int num = 2;
//(1)
if(5 == num)
return 0;
//(2)
if(num == 3)
return 1;
return 0;
//(3) 报错
if(7=num) /// 会报错
举例:
//1. 判断一个数是否为奇数
#include<stdio.h>
int main()
{
int num;
scanf("%d",&num);
if(num % 2 == 1)
{
printf("%d为奇数",num);
}
else{
printf("%d为偶数",num);
}
return 0;
}
// 2. 输出1-100之间的奇数
#include<stdio.h>
int main()
{
printf("1-100之间的奇数:"); // int i= 1;
for(int i = 1; i <= 100; i++) // while(i<=100)
{
if(i % 2 == 1)
{
printf("%d ",i);
}
}
return 0;
}
(2)switch语句
switch语句有且仅有一个 default 子句,但是它可以出现在语句列表的任意位置(即switch语句块的任意位置)
switch(表达式) {
case 常量值 1:
语句 1;
break;
case 常量值 2:
语句 2;
break;
....
default:
语句 3;
break;
}
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二 \n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四 \n");
break;
...
default:
printf("选择出错!!!");
break;
}
}
举例:
// 1-5 打印 weekday;6-7打印weekend
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
default:
printf("选择出错!!!");
break;
}
// 输出结果为: 5 3
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1: m++; /// 符合,进入 m=3,n=1
case 2: n++; /// 由于case 1没有break,继续运行 m=3,n=2
case 3: ///由于case 1没有break,继续运行
switch (n)
{ //新的 switch,需要新的入口,此时 m=3 ,n=2
case 1: n++; // 不符合,不是入口
case 2:m++; n++; // 符合,执行 m=4,n=3
break; //遇到break 终止该switch语句块
}
case 4: //但是 外部的 case 3 依然没有 break,因此继续执行 case 4
m++; // 执行 m=5, n=3
break; // 遇到 break,终止该 switch语句块,
default:
break;
}
printf("m=%d n=%d",m,n); //即跳到此处,打印
return 0; // 打印完成返回 return 0
} // 程序结束