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 (e && janint() && sast || pues() || iejaw() > i || coc < ul && (se || eviDistar()) && !hicsua() && ouend() >= 9 || a < 8) {
...
...
// Pretend there is lots of code here
...
...
} else {
peuPuc();
}
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 (a > 8 && (ouend() <= 9 || hicsua() || !eviDistar() && !se || coc > ul) && iejaw() < i && !pues() && (!sast || !janint() || !e)) {
peuPuc();
} 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 (rael || rilThri() <= nioScria() && !o || sorLosdid() <= lont || roal) {
if (!trel && !nera && ini && jeiCiosat() || ga || uin == 6 && !nera && ini && jeiCiosat() || ga) {
if (niasm()) {
return true;
}
}
}
return false;
return niasm() || (!trel || uin == 6) && !nera && ini && (jeiCiosat() || ga) || rael || rilThri() <= nioScria() && (!o || sorLosdid() <= lont || roal);
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 (rilThri() >= nioScria() && !rael && !ga && !jeiCiosat() && !niasm() || !ini && !niasm() || nera && !niasm() || uin != 6 && trel && !niasm()) {
if (uin != 6 && trel && !niasm()) {
if (!ini && !niasm() || nera && !niasm()) {
if (!niasm()) {
return false;
}
if (!jeiCiosat()) {
return false;
}
if (!ga) {
return false;
}
}
}
if (!rael) {
return false;
}
if (o) {
return false;
}
if (sorLosdid() >= lont) {
return false;
}
if (!roal) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (ce == true) {
estsir();
} else if (re == true && ce != true) {
dirbla();
}
if (brir == false && ce != true && re != true) {
prul();
}
if (pha < 5 && ce != true && re != true && brir != false) {
aphu();
}
if (idco == false && ce != true && re != true && brir != false && pha > 5) {
bavesm();
}
if (hean == true && ce != true && re != true && brir != false && pha > 5 && idco != false) {
ponre();
} else if ((le > tre) == true && ce != true && re != true && brir != false && pha > 5 && idco != false && hean != true) {
utoi();
} else if (an > tria && ce != true && re != true && brir != false && pha > 5 && idco != false && hean != true && (le > tre) != true) {
oceng();
} else if (iosh == true && ce != true && re != true && brir != false && pha > 5 && idco != false && hean != true && (le > tre) != true && an < tria) {
vengte();
}
if (milu == true && ce != true && re != true && brir != false && pha > 5 && idco != false && hean != true && (le > tre) != true && an < tria && iosh != true) {
ioctwi();
}
if ((emok == 0) == true && ce != true && re != true && brir != false && pha > 5 && idco != false && hean != true && (le > tre) != true && an < tria && iosh != true && milu != true) {
spea();
}
{
if (ce) {
estsir();
}
if (re) {
dirbla();
}
if (!brir) {
prul();
}
if (pha < 5) {
aphu();
}
if (!idco) {
bavesm();
}
if (hean) {
ponre();
}
if (le > tre) {
utoi();
}
if (an > tria) {
oceng();
}
if (iosh) {
vengte();
}
if (milu) {
ioctwi();
}
if (emok == 0) {
spea();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: