新手学习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