我最近与一位同事参与了一个涉及一行if语句的争论,并想看看stackoverflow的想法.
你觉得这个陈述应该写成:
if(condition)
{
statement = new assignment;
}
Run Code Online (Sandbox Code Playgroud)
要么
if(condition)
statement=new assignment;
Run Code Online (Sandbox Code Playgroud)
请为您的决定提供充分的理由.
Cem*_*ncu 20
如果你真的应该使用一行if
if(condition) statement=new assignment;
Run Code Online (Sandbox Code Playgroud)
因为它的一行会更好,它应该包含一个操作.
Eri*_* J. 15
我总是使用封闭的大括号来降低某人(包括我自己)以后通过编辑if语句周围的代码引入错误的风险,而不必仔细注意哪些行属于if条件的一部分.
编辑:
这是一个实际的例子,如果我碰巧碰到了一些旧的代码:
if (form.validateUpload (messages, this))
return getErrorOutcome (ctx, messages);
if (LOG.isInfoEnabled ())
LOG.info ("CREATING UPLOAD");
Run Code Online (Sandbox Code Playgroud)
注意两个"if"语句是如何在主代码块中但由于格式不佳,乍一看它们似乎是嵌套的.当然,任何"好"的程序员都应该很快看到发生了什么,但为什么会造成任何不必要的混淆?
我一直是大括号的粉丝.如果有人要像这样修改oneline if语句:
if(condition) statement=new assignment;
Run Code Online (Sandbox Code Playgroud)
至
if(condition)
statement = new assignment;
another statement;
Run Code Online (Sandbox Code Playgroud)
你不会得到预期的行为.
使用大括号几乎可以确保如果某人修改了if语句,他们会确保将正确的语句放在正确的位置.