2. if 语句中嵌入复合语句

上一节我们学习了 if 语句,细心的朋友会发现当我们在 if 的后面或 else 子句的后面写入多条语句时编译器就会报错。原因是 if 和 else 后面的语句部分只能放入一条语句。那么如何放入多条语句呢?这时我们需要使用 复合语句。本节我们先简单讲解复合语句的基本写法,后面我们再详细的介绍复合语句全部的语法和具体细节。

复合语句

复合语句 是使用 大括号 {},将内部的0条、1条或多条语句组合成为一个整体、C 语言中将其作为一条语句放在语法中的某个位置。

复合语句可以写成如下的形式。

{
    int x = 100;
    x ++;
    printf("%d\n", x);
}

上述三条语句 int x = 100;x ++;printf("%d\n", x); 作为一条复合语句存在。

在复合语句内部可以声明变量,在复合语句内部声明的变量是复合语句内部的局部变量(后面会讲)(如上述:int x = 100;),这些局部变量在复合语句内部有效,复合语句执行完毕后会自动销毁。在此复合语句外部将无法使用。如上面的示例可以改写如下,且执行逻辑和结果完全一样:

#include <stdio.h>

int main(int argc, char *argv[]) {
    int age;

    printf("请输入年龄:");
    scanf("%d", &age);

    if (age < 18) {
        printf("你是未成年人!\n");
    } else {
        printf("你是成年人!\n");
    }
    printf("程序退出\n");
    return 0;
}

练习:

写一个程序,输入一个整数x,判断这个整数是正数、负数还是零并打印结果。