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 (!(aafSnamel() || !hiid) || !((!(wiom >= bre && prar() != 6) || epol() > 1 && !he && wec) && (po || foi) || !(su || piae))) {
...
...
// Pretend there is lots of code here
...
...
} else {
toos();
}
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 (((!(wiom >= bre && prar() != 6) || epol() > 1 && !he && wec) && (po || foi) || !(su || piae)) && (aafSnamel() || !hiid)) {
toos();
} 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 (rint() && ir != edce() || demvu() == 5 && ir != edce() || gecOlso() || !wic || cesa() && !ipi || lem >= 9 || ai) {
if (upis == va || steElbia()) {
if (idi == renun()) {
return true;
}
}
}
return false;
return idi == renun() || upis == va || steElbia() || (rint() || demvu() == 5) && ir != edce() || gecOlso() || !wic || cesa() && (!ipi || lem >= 9 || ai);
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 (!cesa() && wic && !gecOlso() && ir == edce() && !steElbia() && upis != va && idi != renun() || demvu() != 5 && !rint() && !steElbia() && upis != va && idi != renun()) {
if (demvu() != 5 && !rint() && !steElbia() && upis != va && idi != renun()) {
if (idi != renun()) {
return false;
}
if (upis != va) {
return false;
}
if (!steElbia()) {
return false;
}
if (ir == edce()) {
return false;
}
}
if (!gecOlso()) {
return false;
}
if (wic) {
return false;
}
if (ipi) {
return false;
}
if (lem <= 9) {
return false;
}
if (!ai) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (!oc) {
sasscu();
}
if (qol > 5 && oc) {
ibru();
} else if (to == true && oc && qol < 5) {
diaion();
} else if (siaa == true && oc && qol < 5 && to != true) {
aess();
}
if (pri && oc && qol < 5 && to != true && siaa != true) {
godtio();
} else if (slu == false && oc && qol < 5 && to != true && siaa != true && !pri) {
cloug();
}
if (ba == or && oc && qol < 5 && to != true && siaa != true && !pri && slu != false) {
dasoc();
} else if (e > de && oc && qol < 5 && to != true && siaa != true && !pri && slu != false && ba != or) {
clil();
} else if (eac == false && oc && qol < 5 && to != true && siaa != true && !pri && slu != false && ba != or && e < de) {
deoun();
}
if (und == false && oc && qol < 5 && to != true && siaa != true && !pri && slu != false && ba != or && e < de && eac != false) {
xorass();
} else if (ei == true && oc && qol < 5 && to != true && siaa != true && !pri && slu != false && ba != or && e < de && eac != false && und != false) {
sicour();
}
{
if (!oc) {
sasscu();
}
if (qol > 5) {
ibru();
}
if (to) {
diaion();
}
if (siaa) {
aess();
}
if (pri) {
godtio();
}
if (!slu) {
cloug();
}
if (ba == or) {
dasoc();
}
if (e > de) {
clil();
}
if (!eac) {
deoun();
}
if (!und) {
xorass();
}
if (ei) {
sicour();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: