1.语句分类
表达式语句;函数调用语句;控制语句;复合语句;空语句。
控制语句用于控制程序的执行流程,以实现程序的各种结构方式(顺序结构、选择结构、循环结构),他们由特定的语句符号组成。
C语言有九种控制语句,分为3类:
1.条件判断语句(分支语句):if语句、switch语句;
2.循环执行语句:do while语句、while语句、for语句;
3.转向语句:break语句、goto语句、continue语句、return语句。
2.分支语句(选择结构)
2.1if语句
注:默认if语句后面只能跟一条语句,若跟多条语句需要加大括号{}(也叫代码块)。
语法结构 |
| 多分支 |
if(表达式) 语句; | if(表达式) 语句1; else 语句2; | if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3; |
int main() { int age = 10; if (age == 18) { printf("成年!"); } return 0; } | int main() { int age = 10; if (age < 18) { printf("未成年!"); } else { printf("成年!"); } return 0; } | int main() { int age = 0; scanf_s("%d", &age); if (age < 18) printf("未成年!"); else if (age >= 18 && age < 28) printf("青年!"); else if (age >= 28 && age < 48) printf("中年!"); else if (age >= 48 && age < 68) printf("壮年!"); else printf("老年!");
return 0; } |
(1)悬空else
else的匹配:else是和它离的最近的if匹配的。
代码 | 适当的使用{}可以使代码的逻辑更加清楚。 |
int main() { int a = 0; int b = 2; if (a == 1) if (b == 2) printf("hehe\n"); else printf("haha\n"); return 0; } | int main() { int a = 0; int b = 2; if (a == 1) { if (b == 2) { printf("hehe\n"); } } else { printf("haha\n"); } return 0; } |
(2)if书写形式对比
代码1 | 代码2 | 代码3 |
if (condition) { return x; } return y; | if (condition) { return x; } else { return y; } | int num = 1; if(num == 5) { printf("hehe\n"); } |
int test() { int a = 4; if (a == 3) return 1; return 0; }
int main() { int r = test(); printf("%d\n", r); return 0; } | int test() { int a = 4; if (a == 3) return 1; else return 0; } int main() { int r = test(); printf("%d\n", r); return 0; } | int num = 1; if(5 == num) { printf("hehe\n"); } |
(3)练习
1. 判断一个数是否为奇数
自己 | 实例 |
int main() { int a = 0; scanf_s("%d", &a); if (a >= 0) { if (a % 2 != 0) { printf("%d是奇数\n", a); } else { printf("%d是偶数\n", a); } } return 0; } | int main() { int num = 0; scanf_s("%d", &num); if (num % 2 == 1) printf("奇数\n"); else printf("No\n");
return 0; } |
2. 输出1-100之间的奇数
代码1 | 代码2 |
int main() { int a = 1; while (a <=100) {
if (a % 2 != 0) { printf("%d", a);
} a++; } return 0; } | int main() { int i = 1; while (i<=100) { printf("%d ", i); i += 2; }
return 0;
} |
2.2switch语句
switch语句可以被嵌套!!
switch(整型表达式)
{
// 语句项-->是一些case语句
case 整形常量表达式:
语句;
break;
}
if语句 | switch语句 |
int main() { int day = 0; scanf_s("%d", &day); if (day == 1) printf("星期一\n"); else if (day == 2) printf("星期二\n"); else if (day == 3) printf("星期三\n"); else if (day == 4) printf("星期四\n"); else if (day == 5) printf("星期五\n"); else if (day == 6) printf("星期六\n"); else if (day == 7) printf("星期日\n"); else printf("输入错误!"); return 0; } | int main() { int day = 0; scanf_s("%d", &day); switch (day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期日\n"); break; default: printf("输入错误\n"); break; } return 0; } |