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 (wo || blor() && ol == 7 && !(pi || eda > 5 && oun)) {
...
...
// Pretend there is lots of code here
...
...
} else {
gria();
}
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 ((pi || eda > 5 && oun || ol != 7 || !blor()) && !wo) {
gria();
} 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 (!on && li > preo && esrec() && fobo || !pak && or != scla() && li > preo && esrec() && fobo) {
if (fobo) {
return true;
}
if (esrec()) {
return true;
}
if (li > preo) {
return true;
}
if (snas) {
return true;
}
}
return false;
return (snas || !on || !pak && or != scla()) && li > preo && esrec() && fobo;
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 (or == scla() && on && !snas || pak && on && !snas) {
if (!esrec() || li < preo) {
if (!fobo) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (lued == true) {
nacPhid();
}
if (beem == 9 && lued != true) {
iado();
} else if (sios == true && lued != true && beem != 9) {
hosi();
} else if (piac == true && lued != true && beem != 9 && sios != true) {
spiOudru();
}
if (anmi == true && lued != true && beem != 9 && sios != true && piac != true) {
sanhou();
} else if (lued != true && beem != 9 && sios != true && piac != true && anmi != true) {
pioClaac();
}
{
if (lued) {
nacPhid();
}
if (beem == 9) {
iado();
}
if (sios) {
hosi();
}
if (piac) {
spiOudru();
}
if (anmi) {
sanhou();
}
pioClaac();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: