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 (te || cri && e || ad && elment() && !id && (pran() || uth <= 2 || ople < 5)) {
...
...
// Pretend there is lots of code here
...
...
} else {
shese();
}
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 ((ople > 5 && uth >= 2 && !pran() || id || !elment() || !ad) && (!e || !cri) && !te) {
shese();
} 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 (thag && blonce() && es > 9 || prusm() && blonce() && es > 9) {
if (hahe >= er && si <= 2) {
if (u && si <= 2) {
if (si <= 2) {
return true;
}
if (li) {
return true;
}
}
}
if (de) {
return true;
}
if (peu < 4) {
return true;
}
}
return false;
return peu < 4 && de && (li || u || hahe >= er) && si <= 2 || (thag || prusm()) && blonce() && es > 9;
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 (!prusm() && !thag && si >= 2 || hahe <= er && !u && !li || !de || peu > 4) {
if (!blonce() && si >= 2 || hahe <= er && !u && !li || !de || peu > 4) {
if (peu > 4) {
if (!de) {
if (hahe <= er && !u && !li) {
if (si >= 2) {
return false;
}
}
}
}
if (es < 9) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if ((i <= ao) == true) {
nober();
} else if ((diis != gec) == true && (i <= ao) != true) {
wiodes();
} else if (kic == 1 && (i <= ao) != true && (diis != gec) != true) {
bresod();
}
if (tu == true && (i <= ao) != true && (diis != gec) != true && kic != 1) {
ossIourde();
} else if (mio == false && (i <= ao) != true && (diis != gec) != true && kic != 1 && tu != true) {
upiUff();
}
if (is == true && (i <= ao) != true && (diis != gec) != true && kic != 1 && tu != true && mio != false) {
skos();
} else if (sont && (i <= ao) != true && (diis != gec) != true && kic != 1 && tu != true && mio != false && is != true) {
kasin();
} else if (arhu == true && (i <= ao) != true && (diis != gec) != true && kic != 1 && tu != true && mio != false && is != true && !sont) {
piad();
}
if (wi > 4 && (i <= ao) != true && (diis != gec) != true && kic != 1 && tu != true && mio != false && is != true && !sont && arhu != true) {
eprot();
}
{
if (i <= ao) {
nober();
}
if (diis != gec) {
wiodes();
}
if (kic == 1) {
bresod();
}
if (tu) {
ossIourde();
}
if (!mio) {
upiUff();
}
if (is) {
skos();
}
if (sont) {
kasin();
}
if (arhu) {
piad();
}
if (wi > 4) {
eprot();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: