这段代码工作正常,但我需要简化它以提高清晰度并希望提高效率:
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();
正如代码所说,我需要调用多个方法(我不知道它们的有限数量)。每页。()* 方法返回一个布尔值,并且n仅在返回的值为 true 时才递增。如果 n==0 (当调用的每个方法都返回 false 时会发生这种情况),那么我需要调用p.standard()。
如何编写更清晰高效的代码?我尝试使用or 条件,如下所示:
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 则不会调用其他方法)。
我需要调用每个方法。