K&R C while 循环省略大括号
Posted
技术标签:
【中文标题】K&R C while 循环省略大括号【英文标题】:K&R C while loop omitting braces 【发布时间】:2014-01-10 06:38:59 【问题描述】:据我了解,对于包含多个语句的任何“语言中的标准构造”(例如 for 循环/if 语句等。我不知道它的真正含义),您都需要打开和关闭大括号。那么,为什么这个 K&R C 有效...
while((len = getline(line, MAXLINE)) > 0)
if(len > max)
max = len;
copy(longest, line);
while 循环中没有大括号,但它确实包含多个语句(当 if 为真时)。这是来自 K&R 的 The C Programming Language 第 2 版中的示例 1.9。
【问题讨论】:
while 循环只包含一个语句:if
语句。
if
-block 算作一个语句...等等,真正的问题在哪里?
if
或 for
或 do ... while
也可以这样做。任何可以有块语句的地方,如果只有一个语句,那么大括号可以省略(函数体除外)。虽然它起源于旧的 K&R C,但它也符合现代标准。
对此的答案确实需要引用标准 IMO...
while 循环是while (condition) statement
。 if (condition) statements
是一个声明。额外的大括号是可取的(我会把它们放在那里)但不是必需的。
【参考方案1】:
在您的情况下,您的 while 循环下只有一个语句,即 if
条件。在这种情况下,这段代码是正确的。
【讨论】:
【参考方案2】:因为if
被读取为while
的单个语句体。这是完全有效的。
【讨论】:
完全有效的 javascript,IIRC。以上是关于K&R C while 循环省略大括号的主要内容,如果未能解决你的问题,请参考以下文章
在C语言中,设已定义k为int整型变量,则有下面while循环执行( )次。 k=10; while(k=0) k=k-1;求过程!