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 (e != uc && idie() < 7 && (naisda() && steBodpo() || po == 9 || fu) || irdfec() || moni || !ga || !timu) {
...
...
// Pretend there is lots of code here
...
...
} else {
cedMussso();
}
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 (timu && ga && !moni && !irdfec() && (!fu && po != 9 && (!steBodpo() || !naisda()) || idie() > 7 || e == uc)) {
cedMussso();
} 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 (odli != 2) {
if (jeric() && !isi || pocDecci() || sqaTiakar() != 2 && !es || !naph || risPiang() >= 4 && !isi || pocDecci() || sqaTiakar() != 2 && !es || !naph) {
if (!geng && !isi || pocDecci() || sqaTiakar() != 2 && !es || !naph) {
if (!naph) {
if (pocDecci() || sqaTiakar() != 2 && !es) {
if (!isi) {
return true;
}
}
}
if (noe) {
return true;
}
}
if (kaun) {
return true;
}
}
}
return false;
return (kaun && (noe || !geng) || jeric() || risPiang() >= 4) && (!isi || pocDecci() || sqaTiakar() != 2 && !es || !naph) || odli != 2;
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 (risPiang() <= 4 && !jeric() && geng && !noe || !kaun) {
if (sqaTiakar() == 2 && !pocDecci() && isi) {
if (isi) {
return false;
}
if (!pocDecci()) {
return false;
}
if (es) {
return false;
}
}
if (naph) {
return false;
}
}
if (odli == 2) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (khie <= 3) {
sphier();
} else if (ke == true && khie >= 3) {
drir();
}
if (bir == true && khie >= 3 && ke != true) {
oshun();
} else if (spi && khie >= 3 && ke != true && bir != true) {
wasgek();
} else if (il != 1 && khie >= 3 && ke != true && bir != true && !spi) {
ectid();
}
if (jo == true && khie >= 3 && ke != true && bir != true && !spi && il == 1) {
miass();
} else if (da == eoat && khie >= 3 && ke != true && bir != true && !spi && il == 1 && jo != true) {
choc();
}
if (liow == popt && khie >= 3 && ke != true && bir != true && !spi && il == 1 && jo != true && da != eoat) {
feldar();
} else if (hok == true && khie >= 3 && ke != true && bir != true && !spi && il == 1 && jo != true && da != eoat && liow != popt) {
enaec();
} else if (ro && khie >= 3 && ke != true && bir != true && !spi && il == 1 && jo != true && da != eoat && liow != popt && hok != true) {
puing();
}
{
if (khie <= 3) {
sphier();
}
if (ke) {
drir();
}
if (bir) {
oshun();
}
if (spi) {
wasgek();
}
if (il != 1) {
ectid();
}
if (jo) {
miass();
}
if (da == eoat) {
choc();
}
if (liow == popt) {
feldar();
}
if (hok) {
enaec();
}
if (ro) {
puing();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: