2013-12-21 38 views
0

根据我的理解,您需要对任何'语言中的标准构造'(例如for循环/ if语句等等)打开和关闭大括号,我不知道真正的单词包含多个语句。那么,这是为什么ķ& R C有效...K&R C while循环省略大括号

while((len = getline(line, MAXLINE)) > 0) 
    if(len > max) { 
    max = len; 
    copy(longest, line); 
    } 

但是有一个在while循环没有大括号,它包含多个语句(IF是在为true时)。这是从K的第二版中的例子1.9开始的C编程语言。

+1

while循环只包含一个语句:一个'if'语句。 –

+0

“if”块作为一个语句计数......等等,真正的问题在哪里? – Kninnug

+0

“if”或“for”或“do ... while”也可以做同样的事情。任何地方你可以有一个块语句,如果只有一个语句,那么可以省略大括号(除了函数体)。虽然它源于旧的K&R C,但它也是现代标准。 –

回答

4

对于您的情况,您的while循环中只有一条语句,即if条件。在这种情况下,这段代码是正确的。

4

因为if被读作while的单个语句正文。这是完全有效的。

+0

IIRC完全有效的Javascript。 – bugmagnet