Administrator
Administrator
发布于 2024-09-05 / 13 阅读
0
0

第5章:控制结构

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;
    }
    

练习

  1. 编写一个程序,输入一个整数,判断它是正数、负数还是零。
  2. 使用for循环打印从1到10的所有偶数。
  3. 编写一个程序,使用while循环计算并打印从1到100的所有整数的和。
  4. 使用switch语句,输入一个整数(1-7),输出对应的星期几。

完成这些练习后,你将对C语言中的控制结构有一个全面的了解。


评论