1. 顺序结构
顺序结构是程序中最基本的执行方式,代码按照从上到下的顺序依次执行。
1.1 示例
int a = 10;
int b = 20;
int sum = a + b;
printf("sum = %d\n", sum); // 输出:30
2. 选择结构
选择结构用于根据条件执行不同的代码块,主要包括 if、if...else、if...else if...else 和 switch 语句。
2.1 if 语句
语法:
if (表达式) {
语句块1;
}执行规则:
- 如果
表达式为真,则执行语句块1;否则不执行。
- 如果
示例:
int score = 50;
if (score < 60) {
printf("你小子期末挂科啦\n");
}
2.2 if...else 语句
语法:
if (表达式) {
语句块1;
} else {
语句块2;
}执行规则:
- 如果
表达式为真,则执行语句块1;否则执行语句块2。
- 如果
注意:
else不能脱离if单独使用。
示例:
int score = 70;
if (score < 60) {
printf("你小子期末挂科啦\n");
} else {
printf("你小子可以啊,这都没挂\n");
}
2.3 if...else if...else 语句
语法:
if (表达式1) {
语句块1;
} else if (表达式2) {
语句块2;
} else if (表达式3) {
语句块3;
} else {
语句块4;
}执行规则:
如果
表达式1为真,则执行语句块1。如果
表达式1为假,则判断表达式2,如果为真,则执行语句块2。如果
表达式2也为假,则判断表达式3,如果为真,则执行语句块3。如果所有表达式都为假,则执行
else中的语句块4。
注意:
众多大括号中,只有一个大括号中的内容会被执行。
只有前面所有条件都不满足,才会执行
else中的内容。
示例:
int score = 85;
if (score >= 90) {
printf("优秀\n");
} else if (score >= 60) {
printf("及格\n");
} else {
printf("不及格\n");
}
2.4 switch 语句
语法:
switch (表达式) {
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
default:
语句块3;
break;
}执行规则:
表达式的值会与每个case后的常量进行比较,匹配成功则执行对应的语句块。如果没有任何
case匹配成功,则执行default中的语句块。
注意:
case后只能跟整型常量(包括char,因为char本质上是 1 字节的整型)。如果没有
break,程序会继续执行后续的case语句,直到遇到break或switch结束。
示例:
int num = 3;
switch (num) {
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;
}输出:
星期三
星期四
星期五
星期六
3. 数组和字符串
3.1 数组
定义:
- 数组是相同类型元素的集合,存储在连续的内存空间中。
语法:
数据类型 数组名[数组长度];
示例:
int arr[5] = {1, 2, 3, 4, 5}; // 定义一个长度为 5 的整型数组
3.2 字符串
定义:
- 字符串是字符数组,以
\0(空字符)结尾。
- 字符串是字符数组,以
语法:
char 字符串名[长度] = "字符串内容";
示例:
char str[10] = "Hello"; // 定义一个字符串
总结
顺序结构:代码从上到下依次执行。
选择结构:
if:单分支条件判断。if...else:双分支条件判断。if...else if...else:多分支条件判断。switch:多分支选择,适用于整型常量。
数组和字符串:
数组是相同类型元素的集合。
字符串是字符数组,以
\0结尾。
