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 ((!aedDontu() || !(tre && iap) && et) && !(melod() != pec && lathra())) {
...
...
// Pretend there is lots of code here
...
...
} else {
stia();
}
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 (melod() != pec && lathra() || (!et || tre && iap) && aedDontu()) {
stia();
} 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 (od && qis || fe <= 7) {
if (!ca && taenod() == 5 && qis || fe <= 7 || !saes && qis || fe <= 7) {
if (!saes && qis || fe <= 7) {
if (fe <= 7) {
if (qis) {
return true;
}
}
if (taenod() == 5) {
return true;
}
}
if (no < 9) {
return true;
}
}
}
return false;
return ((no < 9 || !ca) && (taenod() == 5 || !saes) || od) && (qis || fe <= 7);
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 (!od && saes && taenod() != 5 || ca && no > 9) {
if (!qis) {
return false;
}
if (fe >= 7) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (roth == true) {
swur();
}
if (ew == true && roth != true) {
praPla();
} else if (fong == true && roth != true && ew != true) {
gecas();
} else if (nen == true && roth != true && ew != true && fong != true) {
dathag();
} else if (geri && roth != true && ew != true && fong != true && nen != true) {
fraji();
} else if (roth != true && ew != true && fong != true && nen != true && !geri) {
orro();
}
{
if (roth) {
swur();
}
if (ew) {
praPla();
}
if (fong) {
gecas();
}
if (nen) {
dathag();
}
if (geri) {
fraji();
}
orro();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: