首页 > 解决方案 > 对复合语句进行分类

问题描述

以下是单个声明语句:

int count, sum;

那么下面的while循环呢?

while (count++ < 20) {
    sum += count;
    printf("Running total: %d", sum);
} 

循环是否被while视为单个语句,因为它的结构是:while () {...};,或者while循环只是被视为可能包含零个或多个语句的控制流示例?换句话说,这个结构中的“语句”是如何分类的——上面的循环会被认为是一个还是两个语句?

标签: c

解决方案


根据C99 规范,while 循环被视为迭代语句(第 6.8.5 节),这是一种语句。while 循环包含一个控制表达式和一条语句作为其循环体。

用大括号括起来的语句列表称为复合语句(第 6.8.2 节),这是另一种类型的语句。

因此,您的 while 循环是单个迭代语句,其中包含单个复合语句作为循环体,而循环体又包含两个表达式语句。


推荐阅读