C语言for循环大括号说明

来源:岁月联盟 编辑:zhu 时间:2009-03-02
新手学习C语言的时候可能搞不清这个问题,for循环后有时候有大括号,有时候没有,
比如:
for(i=1;i<=10;i++){.......} 或for(i=1;i<=10;i++) p=i;.....
那么到底什么时候应该加人大括号什么时候不加?还有就是for循环的作用域多大?也就是说到底从哪儿到哪儿属于循环的内容?
下面我们将告诉大家区分这个问题。

若不加大括号,则它只包含下面的一条语句或一个循环,若加了括号,则它包含所有括号内的语句
回答者:我在海里吃火锅 - 助理 二级 5-3 18:33
如果不加大括号,就是作用域就是紧跟着for的那一条语句
如果加大括号,作用域就是这个大括号括起来的内容
如果循环的语句只有一句的话,可以不加大括号,如果有多条,就要加大括号
回答者: jiweix - 见习魔法师 三级 5-3 18:34
for(i=1;i<=10;i++)
p=i;
j=10;


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

p=i;

j=10; 相同
回答者:lzp3758 - 试用期 一级 5-3 18:38
如果说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

图片内容