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 (!(ir || eash) && (!(arspir() && !(me || ha) && ento()) || ourm && ed && tric())) {
...
...
// Pretend there is lots of code here
...
...
} else {
eartro();
}
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 ((!tric() || !ed || !ourm) && arspir() && !(me || ha) && ento() || ir || eash) {
eartro();
} 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 (priPeoiun() && cail && ongil() || uhos() || fesm() >= ered && apal || untFembas() || mifEwl() == 0) {
if (!ho) {
if (puel) {
return true;
}
}
}
return false;
return puel || !ho || priPeoiun() && (cail && ongil() || uhos()) || fesm() >= ered && (apal || untFembas() || mifEwl() == 0);
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 (fesm() <= ered && !uhos() && !ongil() && ho && !puel || !cail && ho && !puel || !priPeoiun() && ho && !puel) {
if (!priPeoiun() && ho && !puel) {
if (!cail && ho && !puel) {
if (!puel) {
return false;
}
if (ho) {
return false;
}
if (!ongil()) {
return false;
}
}
if (!uhos()) {
return false;
}
}
if (!apal) {
return false;
}
if (!untFembas()) {
return false;
}
if (mifEwl() != 0) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (lon == true) {
clairn();
} else if (fe == true && lon != true) {
palpor();
}
if (eu > 3 && lon != true && fe != true) {
stoIhoo();
}
if (rork && lon != true && fe != true && eu < 3) {
ongve();
}
if (epe == true && lon != true && fe != true && eu < 3 && !rork) {
evis();
} else if (plek == true && lon != true && fe != true && eu < 3 && !rork && epe != true) {
riosmi();
} else if (sti == false && lon != true && fe != true && eu < 3 && !rork && epe != true && plek != true) {
stas();
}
if (wrow == true && lon != true && fe != true && eu < 3 && !rork && epe != true && plek != true && sti != false) {
ceouc();
}
if (lon != true && fe != true && eu < 3 && !rork && epe != true && plek != true && sti != false && wrow != true) {
sces();
}
{
if (lon) {
clairn();
}
if (fe) {
palpor();
}
if (eu > 3) {
stoIhoo();
}
if (rork) {
ongve();
}
if (epe) {
evis();
}
if (plek) {
riosmi();
}
if (!sti) {
stas();
}
if (wrow) {
ceouc();
}
sces();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: