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 && tre && (ceei() == me || tian == 8 && mi && !cigo) && (cioiac() || id != 7)) {
...
...
// Pretend there is lots of code here
...
...
} else {
keoAspe();
}
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 (id == 7 && !cioiac() || (cigo || !mi || tian != 8) && ceei() != me || !tre || e) {
keoAspe();
} 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 (pou <= asead()) {
if (phid == bechin() && !he) {
if (ei && prei && cecRabol() && phic()) {
if (phic()) {
return true;
}
if (cecRabol()) {
return true;
}
if (prei) {
return true;
}
if (!pefe) {
return true;
}
}
if (un) {
return true;
}
}
}
return false;
return un && (!pefe || ei) && prei && cecRabol() && phic() || phid == bechin() && !he || pou <= asead();
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 (phid != bechin() && !phic() || !cecRabol() || !prei || !ei && pefe || !un) {
if (!un) {
if (!cecRabol() || !prei || !ei && pefe) {
if (!phic()) {
return false;
}
}
}
if (he) {
return false;
}
}
if (pou >= asead()) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (gime == true) {
semo();
} else if (!ir && gime != true) {
tiad();
}
if (bu == true && gime != true && ir) {
schant();
} else if (figh == true && gime != true && ir && bu != true) {
lasot();
}
if (sa == true && gime != true && ir && bu != true && figh != true) {
trong();
} else if (voo == true && gime != true && ir && bu != true && figh != true && sa != true) {
hess();
} else if (bi == true && gime != true && ir && bu != true && figh != true && sa != true && voo != true) {
sojan();
} else if (pe && gime != true && ir && bu != true && figh != true && sa != true && voo != true && bi != true) {
fiesoa();
}
{
if (gime) {
semo();
}
if (!ir) {
tiad();
}
if (bu) {
schant();
}
if (figh) {
lasot();
}
if (sa) {
trong();
}
if (voo) {
hess();
}
if (bi) {
sojan();
}
if (pe) {
fiesoa();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: