作者ggg12345 (ggg)
看板Soft_Job
标题Re: [讨论] 程式设计师,好吃技术的职业喔!
时间Sun Dec 28 20:06:06 2008
※ 引述《neutrino (十年一梦)》之铭言:
: 如果是"认为condition永远不会跑到else"
: 那就不该用if 该用assert 或者用try&catch
: 如果if是用来branch, 程式原本逻辑是如下这种
: if(condition)
: {
: xxx();
: }
: yyy();
===============================================
现在的 C 语言 使用了 Pascal 语言之後强调的 { ... }
做为指令的 block structure , 但老式的 FORTRAN 与
COBOL 没有如此明显. 他想强调的应该是 structure programming
比起上面 这一句, 因为有了 { } 显然就跟下例是不同的.
例1:
if (condition)
{
xxx();
} else {
yyy();
}
不过, 应该很少人是这样写
例2:
if (codition )
xxx();
if ( ~condition)
yyy();
-----------------------------
原句如果拿掉 { }
if (condition)
xxx();
yyy();
对老式语言习惯者, 少了 { } 跟例2或例1比, 这是比较容易看错的.
如果是像这样会好得多.
if (codition)
xxx();
// endif
yyy();
===============================
: 那麽, 一定要加上else的话,
: 那到底是要
: if(condition)
: {
: xxx();
: yyy();
: }else
: {
: yyy();
: }
: 还是
: if(condition)
: {
: xxx();
: }else
: {
: }
: yyy();
: 效果相同, 出题者到底想要哪个呢? 两者都反而把程式的阅读性变差,
: 行数也拉长了不是吗?
有了 { } , 怎麽写是不容易看错的.
: coding style 有些规定大家都会同意, 例如"不要滥用goto",
: 也有些规定只要在同一家公司或同一个平台里面约定一致就好, 例如"如何缩排",
: "if或else之後的{要放在同一行或是隔行"等等.
: 我觉得"if後面要有else"就是属於後面那种.
: 有必要在找人的时候就要求对方的coding style和自己完全相同吗?
: : 然後再加上自订的编号
: : 加这几行不花几分钟
: : 但这几行可能在未来
: : 节省你几小时的debug时间!!
: : 如果是写过硬体语言的
: : 应该会习惯加上else吧
: : 不加else会有什麽产生?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.4.12