C语言(3)—分支和循环
文章目录
- 一、程序的基本结构
- 二、分支结构
- 1. if语句
- 2. if-else语句
- 三、关系与逻辑运算符
- 1. 关系运算符
- 2. 逻辑运算符
- 四、条件运算符(三目运算符)
- 五、switch语句
- 六、循环结构
- 1. while循环
- 2. for循环
- 七、循环控制语句
- 1. break
- 2. continue
- 八、循环嵌套
- 九、goto语句
- 十、总结
一、程序的基本结构
C语言作为结构化程序设计语言,支持三种基本结构:
顺序结构:代码按顺序逐行执行选择结构:根据条件选择执行不同的代码块循环结构:重复执行某段代码直到满足特定条件
这些结构的组合可以解决几乎所有编程问题。
二、分支结构
1. if语句
if语句是最基本的选择结构,语法形式如下:
if (表达式) 语句;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);return 0;
}
2. if-else语句
if (表达式)语句1;
else语句2;
#include <stdio.h>
int main() {int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);elseprintf("%d 是偶数\n", num);return 0;
}
三、关系与逻辑运算符
1. 关系运算符
C语言提供6种关系运算符:
> 大于< 小于>= 大于等于<= 小于等于== 相等!= 不相等
注意:==(相等判断)与=(赋值)的区别,常见错误:
if (x = 3) // 错误!将3赋值给x,表达式结果永远为真
2. 逻辑运算符
&& 逻辑与:两侧表达式都为真时结果为真|| 逻辑或:两侧至少一个为真时结果为真! 逻辑非:对表达式结果取反
示例:判断季节
int month = 0;
scanf("%d", &month);
if(month >= 3 && month <= 5) {printf("春季\n");
} else if(month == 12 || month == 1 || month == 2) {printf("冬季\n");
}
四、条件运算符(三目运算符)
语法:exp1 ? exp2 : exp3如果exp1为真,则整个表达式值为exp2,否则为exp3。
示例:求两数较大值
#include <stdio.h>
int main() {int a = 0, b = 0;scanf("%d %d", &a, &b);int m = a > b ? a : b;printf("%d\n", m);return 0;
}
五、switch语句
switch (expression) {case value1: statement; break;case value2: statement; break;default: statement;
}
注意事项:expression必须是整型表达式case后必须是整型常量每个case后通常需要break,否则会继续执行后续case
六、循环结构
1. while循环
while (表达式)语句;
2. for循环
for (表达式1; 表达式2; 表达式3)语句;
七、循环控制语句
1. break
#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) break;printf("%d ", i);}// 输出:1 2 3 4return 0;
}
2. continue
#include <stdio.h>
int main() {for(int i = 1; i <= 10; i++) {if(i == 5) continue;printf("%d ", i);}// 输出:1 2 3 4 6 7 8 9 10return 0;
}
八、循环嵌套
循环内可以包含其他循环,常用于处理多维问题。
示例:找出100-200之间的素数
#include <stdio.h>
int main() {for(int i = 100; i <= 200; i++) {int flag = 1; // 假设是素数for(int j = 2; j < i; j++) {if(i % j == 0) {flag = 0;break;}}if(flag) printf("%d ", i);}return 0;
}
九、goto语句
#include <stdio.h>
int main() {printf("hehe\n");goto next;printf("haha\n");next:printf("跳过了haha的打印\n");return 0;
}
十、总结
分支和循环是C语言编程的基础,掌握它们对编写高效、清晰的代码至关重要。本文详细介绍了:
各种分支结构(if、if-else、switch)的使用场景和注意事项三种循环结构(while、for、do-while)的特点和适用情况循环控制语句(break、continue)的正确使用
关系与逻辑运算符的运用技巧
通过大量实例代码,希望您能深入理解这些概念,并在实际编程中灵活运用。记住,良好的代码结构和适当的注释同样重要,这能使您的代码更易读、易维护。
编程练习建议:
尝试用不同循环结构实现相同功能,比较优缺点编写一个计算器程序,使用switch处理不同运算实现九九乘法表的打印编写程序判断用户输入的数字是否为回文数掌握这些基础知识后,您将能够处理更复杂的编程问题,为学习更高级的C语言特性打下坚实基础。