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 (cic && cesp || mimgor() && maiDros() == 9 && oscus() && treim() || ce || !pae || we == e || !(oimb != a || phorme())) {
...
...
// Pretend there is lots of code here
...
...
} else {
blus();
}
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 ((oimb != a || phorme()) && we != e && pae && !ce && (!treim() || !oscus() || maiDros() != 9 || !mimgor()) && (!cesp || !cic)) {
blus();
} 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 (i && rhil() && tiphol() || iest() == 9 || ac == 2 && !tren || se == 3 && laeas() && tiphol() || iest() == 9 || ac == 2 && !tren || loroc() && tiphol() || iest() == 9 || ac == 2 && !tren || !plia && tiphol() || iest() == 9 || ac == 2 && !tren) {
if (se == 3 && laeas() && tiphol() || iest() == 9 || ac == 2 && !tren || loroc() && tiphol() || iest() == 9 || ac == 2 && !tren || !plia && tiphol() || iest() == 9 || ac == 2 && !tren) {
if (ac == 2 && !tren) {
if (iest() == 9) {
if (tiphol()) {
return true;
}
}
}
if (rhil()) {
return true;
}
}
if (ifean()) {
return true;
}
}
if (ia) {
return true;
}
return false;
return ia && (ifean() || i) && (rhil() || se == 3 && (laeas() || loroc() || !plia)) && (tiphol() || iest() == 9 || ac == 2 && !tren);
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 (!i && !ifean() || !ia) {
if (plia && !loroc() && !laeas() && !rhil() || se != 3 && !rhil()) {
if (ac != 2 && iest() != 9 && !tiphol()) {
if (!tiphol()) {
return false;
}
if (iest() != 9) {
return false;
}
if (tren) {
return false;
}
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (en == true) {
issSchomn();
}
if (co == true && en != true) {
rese();
}
if (ni == true && en != true && co != true) {
tria();
}
if (ced == od && en != true && co != true && ni != true) {
cuoLic();
} else if (tre == true && en != true && co != true && ni != true && ced != od) {
astin();
} else if (oss == true && en != true && co != true && ni != true && ced != od && tre != true) {
plibar();
} else if (cil == false && en != true && co != true && ni != true && ced != od && tre != true && oss != true) {
pionpe();
} else if (thux >= iet && en != true && co != true && ni != true && ced != od && tre != true && oss != true && cil != false) {
angEes();
}
if (al == false && en != true && co != true && ni != true && ced != od && tre != true && oss != true && cil != false && thux <= iet) {
staght();
}
if (mu && en != true && co != true && ni != true && ced != od && tre != true && oss != true && cil != false && thux <= iet && al != false) {
irof();
} else if (rac == 4 && en != true && co != true && ni != true && ced != od && tre != true && oss != true && cil != false && thux <= iet && al != false && !mu) {
nang();
}
{
if (en) {
issSchomn();
}
if (co) {
rese();
}
if (ni) {
tria();
}
if (ced == od) {
cuoLic();
}
if (tre) {
astin();
}
if (oss) {
plibar();
}
if (!cil) {
pionpe();
}
if (thux >= iet) {
angEes();
}
if (!al) {
staght();
}
if (mu) {
irof();
}
if (rac == 4) {
nang();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: