This if statement has a very long first clause, and a very short else clause. This makes it hard to read: the tiny else clause is so far from the condition, it’s hard to figure out what the else refers to!
if (((heurd() > 2 || !iss) && o || couNel() == eba && (!siph || po && em)) && !itic() && !aipu && qint()) {
...
...
// Pretend there is lots of code here
...
...
} else {
rasor();
}
Improve readability by refactoring this conditional so that its two clauses are swapped: what is now the second clause (the else clause) comes first, and the first clause comes second.
if (!qint() || aipu || itic() || ((!em || !po) && siph || couNel() != eba) && (!o || iss && heurd() < 2)) {
rasor();
} else {
...
...
// Pretend there is lots of code here
...
...
}
Things to double-check in your solution:
!(...) Instead, make sure you negate the condition by changing each part of it.Pretend there is lots of code here when you write out your solution! Just draw three dots; that’s enough.Simplify the following conditional chain so that it is a single return statement.
if (memb != 4 || spe || !crou) {
if (eckpa()) {
if (casism() && !pne || wul || niaEspun() != 9) {
if (deac()) {
if (i) {
return true;
}
}
if (whe >= mai) {
return true;
}
}
}
}
return false;
return whe >= mai && (i || deac()) || casism() && (!pne || wul || niaEspun() != 9) || eckpa() || memb != 4 || spe || !crou;
Bonus challenge: rewrite the if/else chain above so that instead of consisting of many return true; statements with one return false; at the end, it has many return false; statements with one return true; at the end.
if (!casism() && !deac() && !i || whe <= mai) {
if (whe <= mai) {
if (!i) {
return false;
}
if (!deac()) {
return false;
}
}
if (pne) {
return false;
}
if (!wul) {
return false;
}
if (niaEspun() == 9) {
return false;
}
}
if (!eckpa()) {
return false;
}
if (memb == 4) {
return false;
}
if (!spe) {
return false;
}
if (crou) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (los == true) {
oaon();
} else if (elel <= 7 && los != true) {
treor();
}
if (wo == true && los != true && elel >= 7) {
eeng();
}
if (od == true && los != true && elel >= 7 && wo != true) {
cliis();
} else if (ra == true && los != true && elel >= 7 && wo != true && od != true) {
ackish();
}
if (oo == eest && los != true && elel >= 7 && wo != true && od != true && ra != true) {
lanu();
} else if (oc == true && los != true && elel >= 7 && wo != true && od != true && ra != true && oo != eest) {
supoc();
} else if (ispe == true && los != true && elel >= 7 && wo != true && od != true && ra != true && oo != eest && oc != true) {
eant();
} else if (noc && los != true && elel >= 7 && wo != true && od != true && ra != true && oo != eest && oc != true && ispe != true) {
mupvol();
} else if (los != true && elel >= 7 && wo != true && od != true && ra != true && oo != eest && oc != true && ispe != true && !noc) {
iiom();
}
{
if (los) {
oaon();
}
if (elel <= 7) {
treor();
}
if (wo) {
eeng();
}
if (od) {
cliis();
}
if (ra) {
ackish();
}
if (oo == eest) {
lanu();
}
if (oc) {
supoc();
}
if (ispe) {
eant();
}
if (noc) {
mupvol();
}
iiom();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: