for循环的大括号问题 什么时候加什么时候不加啊

wangy6188 2010-03-21 06:33:46
我知道多句应该加,有的这种:for(i。。。)
if(a【i】%2!=0)
{for(j。。。)
if(a【i】《a【j】)
break;
if(j==i+6)
{
cnt++;
}
}

这个for(i。。。)也是控制多句吧?为何不在if(a【i】%2!=0)前面加{}呢
...全文
1385 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿拉miss杨 2011-05-16
  • 打赏
  • 举报
回复
在有的程序中,随便加{}是不行的!我编程序的时候有时加{} 答案本来是横着输出一行数字。结果就变竖了!!纠结中。
wangy6188 2010-03-21
  • 打赏
  • 举报
回复
就是说要是if(j==i+6)包含在循环里面的话,就要加大括号在for(j。。。)
的后面拉
wangy6188 2010-03-21
  • 打赏
  • 举报
回复
我懂了。。。谢谢各位啊
arong1234 2010-03-21
  • 打赏
  • 举报
回复
当然不算:第二个语句根本没有包含再你那个循环中,这是为什么说你“任何时候”都需要加大括号的原因,因为初学者很容易把一些不是循环体的语句认为是循环体
[Quote=引用 13 楼 wangy6188 的回复:]
还有for(j。。。)后面不是两个if 吗?这2个if也算一个语句块吗?
[/Quote]
wangy6188 2010-03-21
  • 打赏
  • 举报
回复
还有for(j。。。)后面不是两个if 吗?这2个if也算一个语句块吗?
xiuxianshen 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wangy6188 的回复:]
我是说的if( a[i] % 2 != 0 )前面!!!不是后面 就是第一句的i循环后面,不是J循环。。。。
[/Quote]
对于第一个for循环而言,下面整个if语句可以看成是一个大语句,所以此处加不加大括号效果一样
但是好习惯的话,写完for,while,if等语句后面最好都先直接追加一个大括号
arong1234 2010-03-21
  • 打赏
  • 举报
回复
先说说if前面加大括号的可能理由?谁都不知道你if前面是什么,那谁能知道前面是不是需要加大括号?[Quote=引用 10 楼 wangy6188 的回复:]
我是说的if( a[i] % 2 != 0 )前面!!!不是后面 就是第一句的i循环后面,不是J循环。。。。
[/Quote]
wangy6188 2010-03-21
  • 打赏
  • 举报
回复
我是说的if( a[i] % 2 != 0 )前面!!!不是后面 就是第一句的i循环后面,不是J循环。。。。
arong1234 2010-03-21
  • 打赏
  • 举报
回复
这不是简化,这是复杂化,不是说少写几个字符程序就简了
[Quote=引用 7 楼 daphne_tanmuyan 的回复:]
这段程序简化下就是:
for( i... )
if( a[i] % 2 != 0 )
{
//......
}
大括号里省略掉的就是相应的语句段
也就是说for语句下面其实只有一条语句即if语句,所以就不用大括号了。
[/Quote]
qdurenhongcai 2010-03-21
  • 打赏
  • 举报
回复
在任何时候都加,减少不必要的麻烦。
朵丽儿医娘 2010-03-21
  • 打赏
  • 举报
回复
这段程序简化下就是:
for( i... )
if( a[i] % 2 != 0 )
{
//......
}
大括号里省略掉的就是相应的语句段
也就是说for语句下面其实只有一条语句即if语句,所以就不用大括号了。
AlanBruce 2010-03-21
  • 打赏
  • 举报
回复
提高代码的可读性
昵称很不好取 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arong1234 的回复:]
一个编程习惯好的人,在任何时候都加
[/Quote]
up~~
建议任何时候都加上
AlanBruce 2010-03-21
  • 打赏
  • 举报
回复
严谨的编程的规范中,任何时候都要加!
huanmie_09 2010-03-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 wangy6188 的回复:]
我知道多句应该加,有的这种:for(i。。。)
if(a【i】%2!=0)
{for(j。。。)
if(a【i】《a【j】)
break;
if(j==i+6)
{
cnt++;
}
}

这个for(i。。。)也是控制多句吧?为何不在if(a【i】%2!=0)前面加{}呢
[/Quote]
for语句是循环语句。一般形式为:for(初始化表达式; 条件表达式; 修改表达式);
if(a【i】%2!=0)后面加了花括号啊,你说的是if(a【i】《a【j】)
break;这里没有加吧,当if后面只有一条以分号结束的语句的时候,if后面的花括号是可以省略的。作为好的编程习惯,建议一条语句也都加上。
arong1234 2010-03-21
  • 打赏
  • 举报
回复
一个编程习惯好的人,在任何时候都加
昵称很不好取 2010-03-21
  • 打赏
  • 举报
回复
如果for对应多个语句块就应该加{},如果只有一个语句块就不需要加
比如题目中的
for(...)
if(...) break;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧