5.1 条件语句
条件语句用于根据条件表达式的真假来执行不同的代码块。
1. if
语句
- 基本形式:
if (条件表达式) { // 当条件为真时执行的代码 }
- 示例:
#include <stdio.h> int main() { int number = 10; if (number > 5) { printf("The number is greater than 5.\n"); } return 0; }
2. if-else
语句
- 基本形式:
if (条件表达式) { // 当条件为真时执行的代码 } else { // 当条件为假时执行的代码 }
- 示例:
#include <stdio.h> int main() { int number = 3; if (number > 5) { printf("The number is greater than 5.\n"); } else { printf("The number is not greater than 5.\n"); } return 0; }
3. if-else if-else
链
- 用于检查多个条件:
if (条件表达式1) { // 当条件1为真时执行的代码 } else if (条件表达式2) { // 当条件2为真时执行的代码 } else { // 当所有条件都为假时执行的代码 }
- 示例:
#include <stdio.h> int main() { int number = 8; if (number > 10) { printf("The number is greater than 10.\n"); } else if (number > 5) { printf("The number is greater than 5 but less than or equal to 10.\n"); } else { printf("The number is 5 or less.\n"); } return 0; }
4. switch
语句
switch
语句用于替代多重if-else if
结构,适合用于单个变量的多个值判断。- 基本形式:
switch (表达式) { case 值1: // 当表达式等于值1时执行的代码 break; case 值2: // 当表达式等于值2时执行的代码 break; ... default: // 当表达式不等于任何一个已知的值时执行的代码 }
- 示例:
#include <stdio.h> int main() { int day = 3; switch (day) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n"); break; case 4: printf("Thursday\n"); break; case 5: printf("Friday\n"); break; default: printf("Weekend\n"); } return 0; }
5.2 循环语句
循环语句用于反复执行一段代码,直到指定的条件不再满足。
1. for
循环
- 基本形式:
for (初始化; 条件; 更新) { // 循环体代码 }
- 示例:
#include <stdio.h> int main() { for (int i = 0; i < 5; i++) { printf("i = %d\n", i); } return 0; }
2. while
循环
- 基本形式:
while (条件) { // 循环体代码 }
- 示例:
#include <stdio.h> int main() { int i = 0; while (i < 5) { printf("i = %d\n", i); i++; } return 0; }
3. do-while
循环
- 基本形式:
do { // 循环体代码 } while (条件);
do-while
循环至少执行一次,因为条件检查在循环体之后。- 示例:
#include <stdio.h> int main() { int i = 0; do { printf("i = %d\n", i); i++; } while (i < 5); return 0; }
5.3 跳转语句
跳转语句用于改变程序的执行顺序。
1. break
语句
- 用于终止循环或
switch
语句,跳出其代码块。 - 示例:
#include <stdio.h> int main() { for (int i = 0; i < 10; i++) { if (i == 5) { break; } printf("i = %d\n", i); } return 0; }
2. continue
语句
- 用于跳过当前循环中的剩余代码,直接进入下一次循环。
- 示例:
#include <stdio.h> int main() { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; } printf("i = %d\n", i); } return 0; }
3. goto
语句
- 用于无条件跳转到程序中的指定标签。
- 不推荐使用
goto
,因为它会使程序逻辑混乱,难以维护。 - 示例:
#include <stdio.h> int main() { int i = 0; start: printf("i = %d\n", i); i++; if (i < 5) { goto start; } return 0; }
练习
- 编写一个程序,输入一个整数,判断它是正数、负数还是零。
- 使用
for
循环打印从1到10的所有偶数。 - 编写一个程序,使用
while
循环计算并打印从1到100的所有整数的和。 - 使用
switch
语句,输入一个整数(1-7),输出对应的星期几。
完成这些练习后,你将对C语言中的控制结构有一个全面的了解。