【发布时间】:2011-12-09 15:22:55
【问题描述】:
我有编程经验,但在软件开发方面并不多。我目前正在为我工作的公司编写一个软件,我开始挑战自己代码的可读性。
我想知道这是否是嵌入 if 语句的“有效”替代方案,或者是否有更好的方法可以使用。
假设我有以下方法:
public void someMethod()
{
if (some condition)
{
if (some condition 2)
{
if (some condition 3)
{
// ...etc all the way until:
doSomething();
}
else
{
System.err.println("Specific Condition 3 Error");
}
}
else
{
System.err.println("Specific Condition 2 Error");
}
}
else
{
System.err.println("Specific Condition 1 Error");
}
}
现在我要指出的第一件事是,在这种情况下,组合条件(与 &&)是不可能的,因为每个条件都有一个我想要报告的唯一错误,如果我将它们组合起来,我不会不能这样做(或者我会吗?)。在有人尖叫“SWITCH STATEMENT!”之前,我应该指出的第二件事。在我看来,并非所有这些条件都可以通过 switch 语句处理;有些是对象特定的方法调用,有些是整数比较等。
也就是说,以下是使上述代码更具可读性的有效方法,还是有更好的方法?
public void someMethod()
{
if (!some condition)
{
System.err.println("Specific Condition 1 Error");
return;
}
if (!some condition 2)
{
System.err.println("Specific Condition 2 Error");
return;
}
if (!some condition 3)
{
System.err.println("Specific Condition 3 Error");
return;
}
doSomething();
}
因此,基本上,我们不是在 else 块中检查条件并报告错误,而是检查条件的反转,如果为真则返回。结果应该是一样的,但是有没有更好的处理方法?
【问题讨论】:
标签: java if-statement