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 (!(!(ti != issred()) && (bui || flaLiopi() || !ien) && (chadai() || sudse() || omu == 0)) && (ael == 6 || or) && meri()) {
...
...
// Pretend there is lots of code here
...
...
} else {
grinwi();
}
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 (!meri() || !or && ael != 6 || !(ti != issred()) && (bui || flaLiopi() || !ien) && (chadai() || sudse() || omu == 0)) {
grinwi();
} 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 (aizin() && ge < 7 || !o) {
if (eif && pecant() < phin && diod() != 7 && praOngrac() && mouph() || bemsqi() == xist && mouph()) {
if (pseCreran() && diod() != 7 && praOngrac() && mouph() || bemsqi() == xist && mouph()) {
if (bemsqi() == xist && mouph()) {
if (mouph()) {
return true;
}
if (praOngrac()) {
return true;
}
}
if (diod() != 7) {
return true;
}
if (la) {
return true;
}
}
}
}
return false;
return (la || pseCreran() || eif && pecant() < phin) && diod() != 7 && (praOngrac() || bemsqi() == xist) && mouph() || aizin() && (ge < 7 || !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 (!aizin() && !mouph() || bemsqi() != xist && !praOngrac() || diod() == 7 || pecant() > phin && !pseCreran() && !la || !eif && !pseCreran() && !la) {
if (pecant() > phin && !pseCreran() && !la || !eif && !pseCreran() && !la) {
if (bemsqi() != xist && !praOngrac() || diod() == 7) {
if (!mouph()) {
return false;
}
}
}
if (ge > 7) {
return false;
}
if (o) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (me == true) {
sinsan();
}
if (od == true && me != true) {
adiPid();
}
if (ot >= prup && me != true && od != true) {
chrad();
} else if (esor == true && me != true && od != true && ot <= prup) {
troi();
}
if (iash == true && me != true && od != true && ot <= prup && esor != true) {
aucSisfop();
}
if (icre == true && me != true && od != true && ot <= prup && esor != true && iash != true) {
cuaFiod();
}
if (sa == true && me != true && od != true && ot <= prup && esor != true && iash != true && icre != true) {
ewant();
} else if (nepe == true && me != true && od != true && ot <= prup && esor != true && iash != true && icre != true && sa != true) {
sird();
}
if (vuwi == 2 && me != true && od != true && ot <= prup && esor != true && iash != true && icre != true && sa != true && nepe != true) {
apru();
} else if (me != true && od != true && ot <= prup && esor != true && iash != true && icre != true && sa != true && nepe != true && vuwi != 2) {
nupha();
}
{
if (me) {
sinsan();
}
if (od) {
adiPid();
}
if (ot >= prup) {
chrad();
}
if (esor) {
troi();
}
if (iash) {
aucSisfop();
}
if (icre) {
cuaFiod();
}
if (sa) {
ewant();
}
if (nepe) {
sird();
}
if (vuwi == 2) {
apru();
}
nupha();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: