此代码工作正常,但我需要它简化为更清晰,并希望更多的效益:优化代码更清晰和效率
int i = 0;
if (p.cap()) n++;
if (p.creditcard()) n++;
if (p.email()) n++;
[...]
if (p.price()) n++;
if (p.url()) n++;
if (p.zip()) n++;
if (n == 0) p.standard();
正如代码说,我需要调用多种方法(我不不知道它们的有限数量)。每个p。()*方法返回一个布尔值,并且n仅在返回的值为true时递增。如果n == 0(这发生在EVERY方法返回false时),那么我需要调用p.standard()。
如何编写更清晰高效的代码?我试图与或条件,这样的事情:
if (!(p.cap() || p.email() || p.isbn() || p.number() || p.phone() ||
p.price() || p.time() || p.url() || p.zip() || p.creditcard()
)) {
p.standard();
}
但显然它并没有正常工作(例如:如果p.cap()返回true,其他方法不叫)。
我需要调用每种方法。
也许:http://codereview.stackexchange.com/? –
谢谢,我来看看。 – HBv6
java编译器通常会做很多优化,所以我会保留一段这样的代码,而不是简短的可读性。 – jayeff