单行if语句

时间:2017-07-31 23:46:46

标签: java

作为自己学习编程的人和一些关于不同api等的wiki文章我有一个问题!

我见过人们会做这样的if语句:

if(bool)
    return false;

这是一种更容易/更快的方法吗?

if(bool) {
    return false;
}

这是否意味着它只执行到分号(只有一行)?

3 个答案:

答案 0 :(得分:2)

在这种情况下使用花括号的主要原因是为了避免在返回并向if语句添加其他逻辑时出现问题。如果你添加另一行代码但忘记放入大括号,它将不会按照你期望的方式运行。我总是使用花括号作为单行if语句来避免这个问题,即使它在编译器方面是可选的。

答案 1 :(得分:0)

是的,确实如此。例如,

if(bool)
    bool=false;
    someothervar=true;

不会像

那样执行
if(bool){
    bool=false;
    someothervar=true;
}

因为如果Java编译器没有读取分号,那么它只会执行下一个语句。在这种情况下,在第一个示例中,someothervar将始终设置为true,而在第二个示例中,如果条件为someothervartrue将仅设置为true {{1}}。

答案 2 :(得分:0)

是的,可以这样做。这两个语句的功能是相同的。它实际上只能归结为个人对代码外观的偏好。请记住,您应该坚持使用您在代码中选择的任何约定来保持一致性。请记住

if(bool) return false;

也会做同样的事情,并且(在我看来)在以后编辑所述代码时也不易出错。如果您选择以这种方式格式化代码,请注意

形式的内容
if(value)
   for(int i;i<x;i++)
     x=i;

在语法上是有效的,但不应该被使用,因为它只会混淆(在我看来)。