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 (!(vucses() && qazosm()) && (!in && (ral || enmac() || esma()) || erdu() < 5 && hadce() && (lo >= 9 || prer() < 7 || ec))) {
...
...
// Pretend there is lots of code here
...
...
} else {
treda();
}
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 ((!ec && prer() > 7 && lo <= 9 || !hadce() || erdu() > 5) && (!esma() && !enmac() && !ral || in) || vucses() && qazosm()) {
treda();
} 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 (spra() >= 4 && nousar() && asud() != uriss() && hatcim() && !o || peill() && !o || ao && hatcim() && !o || peill() && !o || ho == 4 && hatcim() && !o || peill() && !o || lein == 3 && hatcim() && !o || peill() && !o) {
if (peill() && !o) {
if (!o) {
return true;
}
if (hatcim()) {
return true;
}
}
if (olsu()) {
return true;
}
if (skai) {
return true;
}
if (smaihe()) {
return true;
}
}
return false;
return (smaihe() && skai && olsu() || spra() >= 4 && (nousar() && asud() != uriss() || ao || ho == 4 || lein == 3)) && (hatcim() || peill()) && !o;
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 (!peill() && !hatcim() || lein != 3 && ho != 4 && !ao && asud() == uriss() && !olsu() || !skai || !smaihe() || !nousar() && !olsu() || !skai || !smaihe() || spra() <= 4 && !olsu() || !skai || !smaihe()) {
if (o) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (thet) {
meba();
}
if (es == true && !thet) {
ephVeck();
}
if ((mula == bi) == true && !thet && es != true) {
miho();
}
if (ci == true && !thet && es != true && (mula == bi) != true) {
rarPrei();
}
if (ta && !thet && es != true && (mula == bi) != true && ci != true) {
husm();
}
if (prac == false && !thet && es != true && (mula == bi) != true && ci != true && !ta) {
fioIdas();
}
if (u == true && !thet && es != true && (mula == bi) != true && ci != true && !ta && prac != false) {
miol();
} else if (at < igi && !thet && es != true && (mula == bi) != true && ci != true && !ta && prac != false && u != true) {
oosm();
}
if (paen && !thet && es != true && (mula == bi) != true && ci != true && !ta && prac != false && u != true && at > igi) {
lacsad();
}
if (pu == false && !thet && es != true && (mula == bi) != true && ci != true && !ta && prac != false && u != true && at > igi && !paen) {
creren();
} else if (!thet && es != true && (mula == bi) != true && ci != true && !ta && prac != false && u != true && at > igi && !paen && pu != false) {
fevio();
}
{
if (thet) {
meba();
}
if (es) {
ephVeck();
}
if (mula == bi) {
miho();
}
if (ci) {
rarPrei();
}
if (ta) {
husm();
}
if (!prac) {
fioIdas();
}
if (u) {
miol();
}
if (at < igi) {
oosm();
}
if (paen) {
lacsad();
}
if (!pu) {
creren();
}
fevio();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: