C语言中for语句的两种用法?

如题所述

for语句有两种用法,一种是跟单个语句,一种是跟代码体

在跟单个语句时,由于在C语言语句默认是以分号结尾的,程序会将for (;;)之后直到第一个分号的代码视为循环体来执行,例如下面三种情况:

for (int i=0; i<10; i++) foo1();
for (int i=0; i<10; i++)
    foo1();
for (int i=0; i<10; i++)





                foo1();

上面三种写法,都是调用foo1()函数10次。在下面一种情况里,程序只会将foo1()函数循环调用10次,而不会将foo2()列入循环中,因为分号for语句在foo2()之前就已经结束了:

for (int i=0; i<10; i++) foo1(); foo2();

特别要提的是下面的两种写法,这两种写法的for语句的循环体都为空,程序都不会将foo2()列入循环,因此foo2()只会执行一次。这也是初学者常见的书写错误。

for (int i=0; i<10; i++) ; foo2();
for (int i=0; i<10; i++) ; 
    foo2();


除了跟单个语句外,for语句还可以跟 { } 圈起来的代码体,如下面的例子:

for (int i=0; i<10; i++) {
    foo1();
    foo2();
}

在这种情况下,for语句可以不以分号结尾,程序会将代码体内的所有语句循环10次。

温馨提示:答案为网友推荐,仅供参考
相似回答