Skip to content

1. 顺序结构

顺序结构是程序中最基本的执行方式,代码按照从上到下的顺序依次执行。

1.1 示例

int a = 10;
 int b = 20;
 int sum = a + b;
 printf("sum = %d\n", sum); // 输出:30


2. 选择结构

选择结构用于根据条件执行不同的代码块,主要包括 ifif...elseif...else if...elseswitch 语句。

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. 如果 表达式1 为假,则判断 表达式2,如果为真,则执行 语句块2

    3. 如果 表达式2 也为假,则判断 表达式3,如果为真,则执行 语句块3

    4. 如果所有表达式都为假,则执行 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 语句,直到遇到 breakswitch 结束。

  • 示例

    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"; // 定义一个字符串


总结

  1. 顺序结构:代码从上到下依次执行。

  2. 选择结构

    • if:单分支条件判断。

    • if...else:双分支条件判断。

    • if...else if...else:多分支条件判断。

    • switch:多分支选择,适用于整型常量。

  3. 数组和字符串

    • 数组是相同类型元素的集合。

    • 字符串是字符数组,以 \0 结尾。

知识如风,常伴吾身