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 (!(!(pren != treOinpu()) && !(plaod() && (weccil() || cabeou() == te)) && cucel() < 0 && e != cacAlwe()) && komel() && vana == 4 && !petung()) {
...
...
// Pretend there is lots of code here
...
...
} else {
asstoc();
}
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 (petung() || vana != 4 || !komel() || !(pren != treOinpu()) && !(plaod() && (weccil() || cabeou() == te)) && cucel() < 0 && e != cacAlwe()) {
asstoc();
} 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 (ve || neni < 7 || whul < ifti() && prar && asmIod() && qedgou() || doctis() && qedgou() || kre || usmZors()) {
if (berie() == casRixsta()) {
return true;
}
}
return false;
return berie() == casRixsta() || ve || neni < 7 || whul < ifti() && (prar && asmIod() || doctis()) && qedgou() || kre || usmZors();
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 (!doctis() && !asmIod() && neni > 7 && !ve && berie() != casRixsta() || !prar && neni > 7 && !ve && berie() != casRixsta() || whul > ifti() && neni > 7 && !ve && berie() != casRixsta()) {
if (berie() != casRixsta()) {
return false;
}
if (!ve) {
return false;
}
if (neni > 7) {
return false;
}
if (!qedgou()) {
return false;
}
}
if (!kre) {
return false;
}
if (!usmZors()) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (pocs == true) {
uckAton();
}
if (ad == false && pocs != true) {
dicha();
} else if ((ooss < 4) == true && pocs != true && ad != false) {
angim();
} else if (lom && pocs != true && ad != false && (ooss < 4) != true) {
codpa();
}
if (fos > 1 && pocs != true && ad != false && (ooss < 4) != true && !lom) {
prosi();
}
if (im && pocs != true && ad != false && (ooss < 4) != true && !lom && fos < 1) {
poic();
} else if (no == false && pocs != true && ad != false && (ooss < 4) != true && !lom && fos < 1 && !im) {
ioshol();
}
if (!sa && pocs != true && ad != false && (ooss < 4) != true && !lom && fos < 1 && !im && no != false) {
prafel();
} else if (adil == true && pocs != true && ad != false && (ooss < 4) != true && !lom && fos < 1 && !im && no != false && sa) {
docros();
}
{
if (pocs) {
uckAton();
}
if (!ad) {
dicha();
}
if (ooss < 4) {
angim();
}
if (lom) {
codpa();
}
if (fos > 1) {
prosi();
}
if (im) {
poic();
}
if (!no) {
ioshol();
}
if (!sa) {
prafel();
}
if (adil) {
docros();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: