日升月落

日升月落
日升月落的技术博客
  1. 首页
  2. 程序员
  3. 正文

for 语句的循环体到底在哪

2009年5月13日 741点热度 0人点赞 0条评论

看到这么一个题

在下面循环语句中循环体执行的次数为
for(int i=0;i<n;i++) if(i>n/2)break;

分析一下
开始
i=0<n
if判断,假
i++
i=1<n
if判断,假
i++
i=2<n
if判断,假
i++
……
i=n/2<n
if判断,假
i++
i=n/2+1<n
if判断,真
结束

在此过程中,我们看到,if判断语句执行了n/2+2次。i++执行了n/2+1次。
此题给出的答案为n/2+1,这么看来,i++应该是循环体了。

谭浩强《C语言程序设计》中写道

for语句的一般形式为
for(表达式1;表达式2;表达式3)语句
或者写成更易于理解的形式
for(循环变量赋初值;循环条件;循环变量增值)语句

在我理解中,一直以为语句部分是循环体,所以看到上题之后让我很费解,而且百度到的网页也与我的理解相同。
于是翻出K&R合著的C语言圣经——《The C Programming Language》来寻找答案。其中1.3节的举例

#include

/* print Fahrenheit-Celsius table */
main()
{
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

之后,书中说道,“As with the while, the body of the loop can be a single statement or a group of statements enclosed in braces. The initialization, condition and increment can be any expressions。”(与while语句一样,for循环语句的循环体可以只有一条语句,也可以是用花括号括起来的一组语句。初始化部分,条件部分与增加步长部分都可以是任何表达式)。
这句话显然说明,表达式1-3只是起初始,条件,增加步长之用,语句才是for循环的循环体。
因而断定本文引题有误。

标签: 暂无
最后更新:2018年3月8日

木火唳唳

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

木火唳唳

这个人很懒,什么都没留下

分类
  • 程序员 / 10篇
  • 随笔 / 16篇
  • 大学 / 11篇
  • 高中语文 / 20篇
  • 未分类 / 3篇
最新 热点 随机
最新 热点 随机
如何修复 Windows10 右键菜单弹出延迟 如何恢复 Windows 10 的默认图片查看方式为 Windows 图片查看器 如何在 Chrome 中导入和导出密码 取消 IDEA 的双击 Shift 功能 闲暇随笔 一些注意
现代汉语句式及成分 一年大学方将尽 大连东软信息学院08笔记本HP EliteBook 6930p详细配置 句子成分的划分 “其”字的用法 用 scanf() 接收带空格字符串

COPYRIGHT © 2021 yinrenjie.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2022004353号-1

豫公网安备 41019702002534号