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 ((staeas() || scurde() && psa < 8 || lom || o >= 4) && !((!gir || !aig && ge) && !(iciph() || slos) && psoge() != inti)) {
...
...
// Pretend there is lots of code here
...
...
} else {
isaEsom();
}
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 ((!gir || !aig && ge) && !(iciph() || slos) && psoge() != inti || o <= 4 && !lom && (psa > 8 || !scurde()) && !staeas()) {
isaEsom();
} 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 (!os && rilGrisdo() && en && cioa() == 8 && popli() == 2 && is > 2 && penic() || !ues && id <= 6 && !lo && rilGrisdo() && en && cioa() == 8 && popli() == 2 && is > 2 && penic()) {
if (penic()) {
return true;
}
if (is > 2) {
return true;
}
if (popli() == 2) {
return true;
}
if (cioa() == 8) {
return true;
}
if (uisk == staal()) {
return true;
}
if (!re) {
return true;
}
}
return false;
return (!re && uisk == staal() || (!os || !ues && id <= 6 && !lo) && rilGrisdo() && en) && cioa() == 8 && popli() == 2 && is > 2 && penic();
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 (cioa() != 8 || !en && uisk != staal() || re || !rilGrisdo() && uisk != staal() || re || lo && os && uisk != staal() || re || id >= 6 && os && uisk != staal() || re || ues && os && uisk != staal() || re) {
if (popli() != 2) {
if (is < 2) {
if (!penic()) {
return false;
}
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (otda < 8) {
werm();
}
if (teso == true && otda > 8) {
isphe();
} else if (uss == true && otda > 8 && teso != true) {
lennis();
}
if (ha != 1 && otda > 8 && teso != true && uss != true) {
hocih();
} else if (mece < 2 && otda > 8 && teso != true && uss != true && ha == 1) {
thia();
} else if (a == 4 && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2) {
duix();
}
if (sa == true && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2 && a != 4) {
ardpa();
} else if (prid != 3 && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2 && a != 4 && sa != true) {
huen();
} else if (fa == 7 && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2 && a != 4 && sa != true && prid == 3) {
watpas();
} else if (i == true && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2 && a != 4 && sa != true && prid == 3 && fa != 7) {
cousi();
} else if (clen < 2 && otda > 8 && teso != true && uss != true && ha == 1 && mece > 2 && a != 4 && sa != true && prid == 3 && fa != 7 && i != true) {
stanco();
}
{
if (otda < 8) {
werm();
}
if (teso) {
isphe();
}
if (uss) {
lennis();
}
if (ha != 1) {
hocih();
}
if (mece < 2) {
thia();
}
if (a == 4) {
duix();
}
if (sa) {
ardpa();
}
if (prid != 3) {
huen();
}
if (fa == 7) {
watpas();
}
if (i) {
cousi();
}
if (clen < 2) {
stanco();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: