c - 对复合语句进行分类
问题描述
以下是单个声明语句:
int count, sum;
那么下面的while
循环呢?
while (count++ < 20) {
sum += count;
printf("Running total: %d", sum);
}
循环是否被while
视为单个语句,因为它的结构是:while () {...};
,或者while
循环只是被视为可能包含零个或多个语句的控制流示例?换句话说,这个结构中的“语句”是如何分类的——上面的循环会被认为是一个还是两个语句?
解决方案
根据C99 规范,while 循环被视为迭代语句(第 6.8.5 节),这是一种语句。while 循环包含一个控制表达式和一条语句作为其循环体。
用大括号括起来的语句列表称为复合语句(第 6.8.2 节),这是另一种类型的语句。
因此,您的 while 循环是单个迭代语句,其中包含单个复合语句作为循环体,而循环体又包含两个表达式语句。
推荐阅读
- jquery - 导出到 Excel 时将 jQGrid 数字转换为文本
- python - 使用远程服务器开发和调试 Python
- sql - 如果我们在连接查询中切换表的位置会增加加载数据的速度,这是真的吗?
- android - 针对 SMS 和 CALL_LOG 的 Google 权限限制
- c# - 在 WPF (MVVM) 中实现工作和服务单元
- java - 使用 jSSC 发送短信
- apache-spark - SparkSQL:如何在从数据库加载数据集时指定分区列
- visual-studio-code - 缩进:在vscode中只使用4个空格的缩进
- android - 什么是 libusc.so,为什么我会从那里崩溃?
- react-native - 如何在 React Native 中检测虚拟导航栏何时打开或关闭