C语言教学第四课:控制结构
一、课程导入
学习了C语言的基础知识,包括变量、数据类型和运算符。接下来,将进入C语言的核心部分——控制结构。控制结构是程序设计中用来控制程序流程的重要工具,通过控制结构,我们可以实现条件判断、循环操作等功能,使程序能够根据不同的情况做出不同的行为。将重点学习条件语句和循环语句。
二、条件语句
(一)if
语句
-
基本语法
if (条件) { // 条件为真时执行的代码 }
-
如果条件为真(非零值),则执行大括号中的代码。
-
如果条件为假(零值),则跳过大括号中的代码。
-
-
示例
int age = 18; if (age >= 18) { printf("你已经成年了。\n"); }
(二)if-else
语句
-
基本语法
if (条件) { // 条件为真时执行的代码 } else { // 条件为假时执行的代码 }
-
如果条件为真,执行
if
部分的代码;否则,执行else
部分的代码。
-
-
示例
int age = 16; if (age >= 18) { printf("你已经成年了。\n"); } else { printf("你还未成年。\n"); }
(三)if-else if-else
语句
-
基本语法
if (条件1) { // 条件1为真时执行的代码 } else if (条件2) { // 条件2为真时执行的代码 } else { // 所有条件都不满足时执行的代码 }
-
按顺序检查每个条件,一旦某个条件为真,执行对应的代码块,然后跳过后续的条件。
-
-
示例
int score = 85; if (score >= 90) { printf("优秀\n"); } else if (score >= 70) { printf("良好\n"); } else if (score >= 60) { printf("及格\n"); } else { printf("不及格\n"); }
(四)switch
语句
-
基本语法
switch (表达式) { case 常量1: // 表达式等于常量1时执行的代码 break; case 常量2: // 表达式等于常量2时执行的代码 break; default: // 所有条件都不满足时执行的代码 }
-
根据表达式的值选择执行对应的
case
分支。 -
每个
case
分支后通常使用break
语句防止代码“穿透”。
-
-
示例
int day = 3; switch (day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; default: printf("其他日期\n"); }
三、循环语句
(一)while
循环
-
基本语法
while (条件) { // 循环体 }
-
在每次循环开始时检查条件,如果条件为真,则执行循环体;否则,退出循环。
-
-
示例
int i = 1; while (i <= 5) { printf("%d\n", i); i++; }
(二)do-while
循环
-
基本语法
do { // 循环体 } while (条件);
-
与
while
循环类似,但do-while
循环至少会执行一次循环体,然后再检查条件。
-
-
示例
int i = 1; do { printf("%d\n", i); i++; } while (i <= 5);
(三)for
循环
-
基本语法
for (初始化; 条件; 更新) { // 循环体 }
-
初始化:在循环开始前执行一次。
-
条件:每次循环开始时检查,如果为真则执行循环体。
-
更新:每次循环结束后执行。
-
-
示例
for (int i = 1; i <= 5; i++) { printf("%d\n", i); }
四、循环控制语句
(一)break
语句
-
用于跳出当前循环。
-
示例:
for (int i = 1; i <= 10; i++) { if (i == 5) { break; } printf("%d\n", i); }
(二)continue
语句
-
用于跳过当前循环的剩余部分,直接进入下一次循环。
-
示例:
for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; } printf("%d\n", i); }
五、练习
-
练习题
-
编写一个程序,输入一个整数
n
,判断它是否为正数、负数或零。 -
编写一个程序,输入一个整数
n
,计算从1到n
的累加和。 -
编写一个程序,输入一个整数
n
,打印从1到n
的所有奇数。
-
-
参考答案
-
判断正负数
#include <stdio.h> int main() { int n; printf("请输入一个整数:"); scanf("%d", &n); if (n > 0) { printf("正数\n"); } else if (n < 0) { printf("负数\n"); } else { printf("零\n"); } return 0; }
-
累加和
#include <stdio.h> int main() { int n, sum = 0; printf("请输入一个整数:"); scanf("%d", &n); for (int i = 1; i <= n; i++) { sum += i; } printf("从1到%d的累加和为:%d\n", n, sum); return 0; }
-
打印奇数
#include <stdio.h> int main() { int n; printf("请输入一个整数:"); scanf("%d", &n); for (int i = 1; i <= n; i++) { if (i % 2 != 0) { printf("%d\n", i); } } return 0; }
-
六、总结
学习了C语言中的控制结构,包括条件语句(if
、if-else
、if-else if-else
、switch
)和循环语句(while
、do-while
、for
)。通过这些控制结构,我们可以实现复杂的程序逻辑。我们还学习了循环控制语句(break
和continue
),用于控制循环的执行。