C语言for循环大括号说明

摘自: www.chinaitlab.com  被阅读次数: 136


yangyi 于 2009-07-04 20:41:23 提供


    新手学习C语言的时候可能搞不清这个问题,for循环后有时候有大括号,有时候没有,比如:

    for(i=1;i<=10;i++){……}      或for(i=1;i<=10;i++) p=i;……

    那么到底什么时候应该加人大括号什么时候不加?还有就是for循环的作用域多大?也就是说到底从哪儿到哪儿属于循环的内容?

    下面我们将告诉大家区分这个问题。

    若不加大括号,则它只包含下面的一条语句或一个循环,若加了括号,则它包含所有括号内的语句

    如果不加大括号,就是作用域就是紧跟着for的那一条语句

    如果加大括号,作用域就是这个大括号括起来的内容

    如果循环的语句只有一句的话,可以不加大括号,如果有多条,就要加大括号

    for(i=1;i<=10;i++)

    p=i;j=10;

    与

    for(i=1;i<=10;i++)

    {

    p=i;

    }

    j=10;相同

    如果说for里有一句循环语句,那么就不用加大括号,这是简便的写法!如:

    for(1=0;i<10;i++)

    printf(\"*****\");

    这样就不用加打括号,如果是下面这样,

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

    {

    printf(\"***\");

    printf(\"循环10次\");

    }

    那就要加大括号,因为里面有2句是循环语句,不加大括号的情况下,这能认为语句里面的第一句是要执行的,比如:

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

    printf(\"***\");

    printf(\"循环10次\");

    屏幕上出现***循环10次的结果,而“循环10次”只被输出了一次!

    这种方法不仅在for可以出现,在if等都可以出现

----------------------------

    作用域的问题:

    如果不加大括号,那么作用域就是下面数第一句话,如果有大括号,那么就是大括号里面的所有内容,如:

    for(i=-;i<10;i++)

    {

    printf(\"***\");

    printf(\"***\"):

    }

    作用域就是两句printf

    for(i=-;i<10;i++)

    printf(\"***\");

    printf(\"***\"):]

    作用域就是第一句printf

原文链接: http://c.chinaitlab.com/c/basic/...