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 (!(a != 9 && !ed && (po > 1 || cissbe() == tirnmo())) && oswa == 5 && grop() && dedu() == fis && (!(cipXedsta() && orn) || tessba() != 0)) {
...
...
// Pretend there is lots of code here
...
...
} else {
hocec();
}
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 (tessba() == 0 && cipXedsta() && orn || dedu() != fis || !grop() || oswa != 5 || a != 9 && !ed && (po > 1 || cissbe() == tirnmo())) {
hocec();
} 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 (feca && ene && ae && ad != 3 && !eu && tesmad() && !asen && ves && drolma() || qen <= songes() && !asen && ves && drolma()) {
if (drolma()) {
return true;
}
if (ves) {
return true;
}
if (!asen) {
return true;
}
if (sprosm() <= 0) {
return true;
}
}
return false;
return (sprosm() <= 0 || feca && ene && ae && ad != 3 && (!eu && tesmad() || qen <= songes())) && !asen && ves && drolma();
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 (!ves || asen || qen >= songes() && !tesmad() && sprosm() >= 0 || eu && sprosm() >= 0 || ad == 3 && sprosm() >= 0 || !ae && sprosm() >= 0 || !ene && sprosm() >= 0 || !feca && sprosm() >= 0) {
if (!drolma()) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (ta == true) {
hesu();
} else if (mur == true && ta != true) {
fral();
}
if ((pu < 7) == true && ta != true && mur != true) {
blid();
} else if (ther == 7 && ta != true && mur != true && (pu < 7) != true) {
tred();
} else if (ecor && ta != true && mur != true && (pu < 7) != true && ther != 7) {
haiIxpelp();
}
if (spaa == true && ta != true && mur != true && (pu < 7) != true && ther != 7 && !ecor) {
renras();
} else if (prer == true && ta != true && mur != true && (pu < 7) != true && ther != 7 && !ecor && spaa != true) {
sansuh();
} else if (fong == false && ta != true && mur != true && (pu < 7) != true && ther != 7 && !ecor && spaa != true && prer != true) {
iafIsdoth();
}
if (od == false && ta != true && mur != true && (pu < 7) != true && ther != 7 && !ecor && spaa != true && prer != true && fong != false) {
hosso();
}
if (!gao && ta != true && mur != true && (pu < 7) != true && ther != 7 && !ecor && spaa != true && prer != true && fong != false && od != false) {
clur();
}
{
if (ta) {
hesu();
}
if (mur) {
fral();
}
if (pu < 7) {
blid();
}
if (ther == 7) {
tred();
}
if (ecor) {
haiIxpelp();
}
if (spaa) {
renras();
}
if (prer) {
sansuh();
}
if (!fong) {
iafIsdoth();
}
if (!od) {
hosso();
}
if (!gao) {
clur();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: