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 (!(!mo || threng() && !ouk && (voal() || tiolol()) || ene) || !((!rirm && ap != 3 || ix >= 9) && !(!a && greter() < 6))) {
...
...
// Pretend there is lots of code here
...
...
} else {
nasoer();
}
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 ((!rirm && ap != 3 || ix >= 9) && !(!a && greter() < 6) && (!mo || threng() && !ouk && (voal() || tiolol()) || ene)) {
nasoer();
} 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 (dumbfi()) {
if (ril && ris == 2 && pec && jod || pniod() < 6 || e && pec && jod || pniod() < 6 || !sa && jod || pniod() < 6 || !pror && jod || pniod() < 6 || timi() && jod || pniod() < 6) {
if (!sa && jod || pniod() < 6 || !pror && jod || pniod() < 6 || timi() && jod || pniod() < 6) {
if (e && pec && jod || pniod() < 6) {
if (pniod() < 6) {
if (jod) {
return true;
}
}
if (pec) {
return true;
}
if (ris == 2) {
return true;
}
}
}
if (squn() < 3) {
return true;
}
}
if (esma()) {
return true;
}
}
return false;
return esma() && (squn() < 3 || ril) && ((ris == 2 || e) && pec || !sa || !pror || timi()) && (jod || pniod() < 6) || dumbfi();
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 (!timi() && pror && sa && !pec || !e && ris != 2 || !ril && squn() > 3 || !esma()) {
if (!jod) {
return false;
}
if (pniod() > 6) {
return false;
}
}
if (!dumbfi()) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (la == true) {
atcirn();
}
if (hii == true && la != true) {
prus();
} else if (pe == true && la != true && hii != true) {
agli();
}
if (eai == true && la != true && hii != true && pe != true) {
soen();
}
if (whi == false && la != true && hii != true && pe != true && eai != true) {
rucec();
}
if (u == true && la != true && hii != true && pe != true && eai != true && whi != false) {
siiEcs();
}
if (ceco == 9 && la != true && hii != true && pe != true && eai != true && whi != false && u != true) {
ceris();
}
if (pri == true && la != true && hii != true && pe != true && eai != true && whi != false && u != true && ceco != 9) {
fliAdre();
}
if (peth == true && la != true && hii != true && pe != true && eai != true && whi != false && u != true && ceco != 9 && pri != true) {
odbik();
} else if (se < 8 && la != true && hii != true && pe != true && eai != true && whi != false && u != true && ceco != 9 && pri != true && peth != true) {
jases();
} else if (la != true && hii != true && pe != true && eai != true && whi != false && u != true && ceco != 9 && pri != true && peth != true && se > 8) {
phenus();
}
{
if (la) {
atcirn();
}
if (hii) {
prus();
}
if (pe) {
agli();
}
if (eai) {
soen();
}
if (!whi) {
rucec();
}
if (u) {
siiEcs();
}
if (ceco == 9) {
ceris();
}
if (pri) {
fliAdre();
}
if (peth) {
odbik();
}
if (se < 8) {
jases();
}
phenus();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: