锁定老帖子 主题:单命令行下,if 必须加"{}" 的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (16)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-30
最后修改:2011-05-31
for语句也就算了,if语句为什么也必须加呢?(我说的是各个公司的要求)。 规范,不过是为了避免修改程序后运行出错吧?我倒觉得既然程序员修改了程序,那肯定也会去测试程序,那这样,还有必要必须后跟"{"的要求么?加了"{"会同时引起麻烦和美观的问题,视觉上就是累赘的感觉,像我这类程序员就很想去删除。 哦,出来混还没满一年,求教不加“{}”后有什么潜在的问题? 欢迎拍砖,不是铁块就行。 ------------------------------------------ 没想到这个简单的话题还是有很多热心人的回复,感动中。 总结了下各位的回复,加{}的理由有二:一是多编辑器如VI的问题,如果是web开发的一般不会有这方面的问题吧?二是,哦,纯粹的“规定”问题,并没有解决潜在问题的问题。关于第二点,首先要说的是,加不加{},其实并不像回复中所说的“乱套了”,就那么一点的符号,怎么可能乱了呢?就算有上万行的又经过N多人修改的代码也不会出现混乱的视觉问题,也就说,没这个规范需要。其次,如果加{}并没解决什么潜在的问题的话,那么,这个规定,就真的很蛋疼了。就好比女子的审美标准,在唐朝,以“胖”为美,而其它朝,以“瘦”为美。难道,最初提出这个规范的,是个唐朝的人? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-30
我支持你,JDK源码有些都是IF不加花括号
|
|
返回顶楼 | |
发表时间:2011-05-30
谁能保证你这一行代码永远不会被改,以后维护的人多加一行呢,而他又忘了加{}呢
至于美观方面,看代码风格了,如果是{}独占一行,那加{}肯定好看,如果{}跟在代码后面,那不加{}好看一点,如果代码谈不上风格,乱成一锅粥,那怎么都难看,哈哈 |
|
返回顶楼 | |
发表时间:2011-05-30
如果语句足够的短,我觉得应该放到一行,且不用花括号。这样增加的可读性是显而易见的。
如果语句比较大,例如: if ( a > 0 ) if (b < 0 ) a++; else if (a < b) b++; else a += b; 这就看起来不太好了。 另外C语言中的宏可能导致微妙的问题: #define MM if (b > a) b++; if (a > 0) MM() else a -= b; //相当于 if (a > 0); if (b > a) b++; else a -= b; 这样代码的逻辑完全变了。 003 写道 谁能保证你这一行代码永远不会被改,以后维护的人多加一行呢,而他又忘了加{}呢
我经常不加括号,楼上说的如果维护的人多加一句的情况,至少在我的编程生涯中没有遇到过。 |
|
返回顶楼 | |
发表时间:2011-05-30
chunquedong 写道 如果语句比较大,例如: if ( a > 0 ) if (b < 0 ) a++; else if (a < b) b++; else a += b; 这就看起来不太好了。 嗯,语句比较大的,需要加if,就如for语句,就算只有一行命令也该添加,因为视觉上会更清晰。我发贴的意图,并不是为了省了那几行代码,纯粹是为了视觉阅读上的雅观。 |
|
返回顶楼 | |
发表时间:2011-05-30
对于tab键与四个空格在不同文本编辑器中显示不同....有必要使用大扩号进行人眼对齐
PS:你可以用ssh跳到unix黑窗下用vi试试看看 |
|
返回顶楼 | |
发表时间:2011-05-30
一段累眼睛的for循环。
echo -e "for i in `seq 7|xargs` \\ndo \\necho \$i \\ndone"|sh 程序的可读性很重要。 |
|
返回顶楼 | |
发表时间:2011-05-30
哦!ls的二位,VI编辑器是很蛋疼!
当然对于for我说过需要加{}的,if我不知道是怎样的效果,估计也难看吧。 除了对linux的支持外,还有其它的潜在问题吗,比如WEB开发上的? |
|
返回顶楼 | |
发表时间:2011-05-30
这个主要是规范问题
|
|
返回顶楼 | |
发表时间:2011-05-30
国内公司都有这些规定。
我看许多开源框架,以及JDK到处都有省略括号的地方。而且我觉得有些地方省略了括号,代码反而更好看,当然这只限于部分开源代码。 |
|
返回顶楼 | |