C语言控制结构

控制结构详解

C语言提供了多种控制结构,用于控制程序的执行流程。

主要控制结构:

  • 条件语句 (if-else, switch-case)
  • 循环语句 (for, while, do-while)
  • 跳转语句 (break, continue, goto)
  • 条件运算符 (?:)
#include <stdio.h>

int main() {
    // if-else语句示例
    printf("if-else语句示例:\n");
    int score = 85;
    if (score >= 90) {
        printf("优秀\n");
    } else if (score >= 80) {
        printf("良好\n");
    } else if (score >= 60) {
        printf("及格\n");
    } else {
        printf("不及格\n");
    }
    
    // switch-case语句示例
    printf("\nswitch-case语句示例:\n");
    int day = 3;
    switch (day) {
        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:
        case 7:
            printf("周末\n");
            break;
        default:
            printf("无效的日期\n");
    }
    
    // for循环示例
    printf("\nfor循环示例:\n");
    printf("打印1到5的平方:\n");
    for (int i = 1; i <= 5; i++) {
        printf("%d的平方是:%d\n", i, i * i);
    }
    
    // while循环示例
    printf("\nwhile循环示例:\n");
    printf("计算1到10的和:\n");
    int sum = 0;
    int num = 1;
    while (num <= 10) {
        sum += num;
        num++;
    }
    printf("1到10的和是:%d\n", sum);
    
    // do-while循环示例
    printf("\ndo-while循环示例:\n");
    printf("猜数字游戏:\n");
    int target = 7;
    int guess;
    do {
        printf("请输入一个1到10之间的数字:");
        scanf("%d", &guess);
        if (guess < target) {
            printf("太小了!\n");
        } else if (guess > target) {
            printf("太大了!\n");
        }
    } while (guess != target);
    printf("恭喜你猜对了!\n");
    
    // break语句示例
    printf("\nbreak语句示例:\n");
    printf("查找第一个能被7整除的数:\n");
    for (int i = 1; i <= 20; i++) {
        if (i % 7 == 0) {
            printf("找到:%d\n", i);
            break;
        }
    }
    
    // continue语句示例
    printf("\ncontinue语句示例:\n");
    printf("打印1到10中不能被3整除的数:\n");
    for (int i = 1; i <= 10; i++) {
        if (i % 3 == 0) {
            continue;
        }
        printf("%d ", i);
    }
    printf("\n");
    
    // goto语句示例
    printf("\ngoto语句示例:\n");
    int count = 0;
    start:
    if (count < 3) {
        printf("count = %d\n", count);
        count++;
        goto start;
    }
    
    // 嵌套循环示例
    printf("\n嵌套循环示例:\n");
    printf("打印乘法表:\n");
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d×%d=%-3d", j, i, i * j);
        }
        printf("\n");
    }
    
    // 条件运算符示例
    printf("\n条件运算符示例:\n");
    int a = 5, b = 10;
    int max = (a > b) ? a : b;
    printf("a和b中的较大值是:%d\n", max);
    
    return 0;
}