Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 单行if语句_If Statement - Fatal编程技术网

If statement 单行if语句

If statement 单行if语句,if-statement,If Statement,我最近与一位同事发生了一场争论,涉及一行if语句,我想看看stackoverflow的想法 您是否认为该声明应写为: if(condition) { statement = new assignment; } 或 请为您的决定提供一个很好的理由。如果您真的应该使用一行,如果 if(condition) statement=new assignment; 因为它只有一行,所以它应该包含一个操作。我一直都喜欢大括号。如果有人修改单行If语句,如下所示: if(condition) s

我最近与一位同事发生了一场争论,涉及一行if语句,我想看看stackoverflow的想法

您是否认为该声明应写为:

if(condition)
{
     statement = new assignment;
}


请为您的决定提供一个很好的理由。

如果您真的应该使用一行,如果

 if(condition) statement=new assignment;

因为它只有一行,所以它应该包含一个操作。

我一直都喜欢大括号。如果有人修改单行If语句,如下所示:

if(condition) statement=new assignment;

你不会得到预期的行为


使用大括号可以确保如果有人修改if语句,他们会确保将正确的语句放在正确的位置。

我总是使用一行
if
无括号语句。括号的出现表明(从语法上来说是正确的)“哦,我可以在这里做其他事情……”我不喜欢这种诱惑。任何涉及多条语句的内容都应该用适当的括号分成多行。

我总是使用括号来减少有人(包括我自己)以后引入错误的风险,方法是编辑if语句周围的代码,而不仔细注意哪一行属于if条件的一部分

编辑:

下面是一个活生生的例子,如果我碰巧在一些旧代码中遇到:

if (form.validateUpload (messages, this))
    return getErrorOutcome (ctx, messages);
    if (LOG.isInfoEnabled ())
        LOG.info ("CREATING UPLOAD");

请注意,这两个“if”语句都位于主代码块中,但由于格式不佳,乍一看它们似乎是嵌套的。当然,任何一个“优秀”的程序员都应该很快看到正在发生的事情,但为什么会造成任何不必要的混乱呢?

我不想使用括号

需要括号的唯一原因是如果块中有多个语句

不过,这听起来像是在浪费争论

if(condition)
    statement=new assignment;


一般来说,我讨厌一行ifs,除了这个Perl例子

operation if condition;

这实际上取决于您组的编码风格。集团应具有一致的编码标准。对于我当前的团队,我们始终使用:

if (condition) {
  statement = new assignment;
}
我们这样做是为了防止由于忘记if语句后的大括号而导致的错误,例如:

if (condition)
   statement1;
   statement2; 
//statement2 is not part of the if statement, but it looks like it because of wrong indentation
另一个我最近工作过的小组总是对一行if语句使用这种语法:

if (condition)
    statement1;
就我个人而言,我不太喜欢这个,因为它不太明确;但最重要的是,要坚持团队或项目的统一编码标准,这样,您编写的代码看起来就像您的同事编写的代码,对团队中的每个人来说都同样容易阅读


IDE或环境的约定可以为您的编码标准提供良好的基础,甚至可以根据您的组的风格进行定制。

我有自动格式设置来消除您的一行代码,这将它放在两行上。因此,它需要支架

if (condition)
{
    statement = new assignment;
}
这就是我要写的。这是因为我喜欢整洁的代码,这样可以节省阅读/编辑/理解的时间

在极少数情况下,只有当我快速而肮脏地编写调试代码时,我才会破例


一行if语句总是很容易被分号的放置方式破坏。

我总是用括号括起来,而且我从不编写一行if,我的方法如下

if(condition) { 
    statement = new assignment; 
}
因为我编写Java代码,这是该语言的惯例。检查:

注意:if语句始终使用大括号 {}. 避免以下容易出错的错误 表格:


括号的使用可以防止错误:有些人可能会在以后添加新的句子,这些句子会在出现条件时被执行,并且忘记括号,因为基本上,如果你需要括号,你就不会把它写在一行中。请永远不要这样做。这是纯粹的癌症,如果你必须调试的话。调试时,您永远无法确切知道条件是否为真,语句是否已设置!你总是需要检查。即使是最坏的情况,如果在
if
。。。对于这样做的人来说,地狱里肯定有一个特别的地方。调试起来非常可怕,而且绝对不容易阅读。这个想法是为了防止人们在没有大括号的if中添加语句。我个人只在休息和继续时使用它,不允许在没有支架的情况下使用if。如果调试器不能在一行中执行两条语句,我认为您需要升级调试器。如果有人这样做,他们显然不懂该语言。这不属于基本能力吗?(本意)理解语言和拼写错误彼此无关。添加大括号可以确保正确的行为发生。可能是一名初级程序员,在代码首次编写后能够很好地维护代码。也可能是一个高级程序员度过了糟糕的一天。为什么要给别人制造一个犯错的机会呢?所以你建议在代码中乱扔许多不必要的大括号。@Alan-我们不能用白痴来证明我们的代码。任何不了解这种基本语言行为的人都需要快速地学习这种语言。他们显然不知道这一点,也不应该玩弄你的代码,他们引入的任何bug都可以a)由有能力的人轻松修复,b)有可能教给他们一些他们显然需要艰苦学习的东西。我使用的是单行模式,从来没有被这种特殊的错误所困扰。这是一个如此广泛和广泛的警告,防止“抓到你了”,以至于没有人再爱上它。重复:,,和许多其他。通过编辑,你已经完全改变了这个问题;-)我查看了编辑历史记录,在您提出问题后,有两次编辑:一次是重新标记,另一次是代码格式化,试图使其成为实际问题。整体意义没有改变。@geowa:当然改变了。“格式化”代码改变了问题的性质。主题指的是“一行if语句”。第一个例子现在有三行,第二个例子有两行。@Adam:如果你看一下原来的问题,它写出来的和现在的一模一样。但是OP没有代码格式
if (condition)
    statement1;
if (condition)
{
    statement = new assignment;
}
if(condition) { 
    statement = new assignment; 
}
if (condition) //AVOID! THIS OMITS THE BRACES {}!
    statement;