c语言中的for循环

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:51:05
c语言的起泡算法中有一段是:
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
那这里比如第一个for循环后面不用加{}么?是不是正确的应该是:
for(j=1;j<=9;j++)
{
for(i=1;i<=10-j;i++)
{
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
}
谢谢!
"因为外层的for语句里面只包含一个for语句,所以不用{}括起来"
也就是说第一个for仅包含了第二个for,第二个for仅包含了一个if,两个for循环都只包含了一个语句,而不是说第一个for包含了for,if以及{}中的语句,是这样理解么?谢谢!

恩,正确,for,while,do,if什么的都是这么用,只能处理它的下一句,一个复合语句相当于一句话

两种都是对的,因为外层的for语句里面只包含一个for语句,所以不用{}括起来,需要用花括号的,是多个表达式和语句的时候,也就是,出现;的时候

加括号,简单的是,就是把很多语句并成一个语句!(可以这样理解)
因为后一个for只跟了一个if语句,所以不用加!

for()
{
if()。。。

if()。。。
}

上面跟了两个if语句,所以加括号,让if都属于for循环里面!

两种方法都是对的,正如楼主所说的
"因为外层的for语句里面只包含一个for语句,所以不用{}括起来"。
不过加上{}也是正确的,而且更容易看懂。
不仅仅是for()语句,其他语句也是如此,后面如果仅有一条语句的话,就不用加{},例如:
for(...)
if(...) ....
if(...)...
else...
else...
完全等同于:
for(...)
{
if(...)...
{if(...)...
else...
}
else...
}
楼主的理解是完全正确的,值得注意的是,
if和else本身是一条语句,不过有时候不写else语句罢了

你这个加不加都一样 但是 如果是第一个for里包含多个语句 就要加了
比如
#include <stdio.h>
void main()
{int a=2,i,j;
for(i=1;i<=4;i++) //这里的for里面有5句话 所以 要括上
{for(j=1;j<=10-2*i;j++)printf("%d",a); //这的for后面就一句话 就不