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 (qo || (poad || o) && (aptuss() || uacVarien() || !(bem == 9) || pesmse() != 3) && fi && ispo < fle) {
...
...
// Pretend there is lots of code here
...
...
} else {
banism();
}
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 ((ispo > fle || !fi || pesmse() == 3 && bem == 9 && !uacVarien() && !aptuss() || !o && !poad) && !qo) {
banism();
} 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 (re && swec && koed() && e == 2 && ses && exse() < 9 || ne == 7 && ses && exse() < 9) {
if (praphu()) {
return true;
}
if (sherca() == 0) {
return true;
}
if (olhu) {
return true;
}
}
return false;
return olhu && sherca() == 0 && praphu() || re && swec && koed() && (e == 2 || ne == 7) && ses && exse() < 9;
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 (!ses && !praphu() || sherca() != 0 || !olhu || ne != 7 && e != 2 && !praphu() || sherca() != 0 || !olhu || !koed() && !praphu() || sherca() != 0 || !olhu || !swec && !praphu() || sherca() != 0 || !olhu || !re && !praphu() || sherca() != 0 || !olhu) {
if (sherca() != 0 || !olhu) {
if (!praphu()) {
return false;
}
}
if (exse() > 9) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (piot == true) {
anoCeen();
} else if ((tant <= uar) == true && piot != true) {
fellwu();
}
if (as == false && piot != true && (tant <= uar) != true) {
priPesso();
} else if (ori == false && piot != true && (tant <= uar) != true && as != false) {
stas();
}
if (itus == false && piot != true && (tant <= uar) != true && as != false && ori != false) {
coiru();
} else if (cuad == false && piot != true && (tant <= uar) != true && as != false && ori != false && itus != false) {
echid();
} else if (pism == false && piot != true && (tant <= uar) != true && as != false && ori != false && itus != false && cuad != false) {
sple();
} else if (zocs != 8 && piot != true && (tant <= uar) != true && as != false && ori != false && itus != false && cuad != false && pism != false) {
hetwal();
}
if (piot != true && (tant <= uar) != true && as != false && ori != false && itus != false && cuad != false && pism != false && zocs == 8) {
pric();
}
{
if (piot) {
anoCeen();
}
if (tant <= uar) {
fellwu();
}
if (!as) {
priPesso();
}
if (!ori) {
stas();
}
if (!itus) {
coiru();
}
if (!cuad) {
echid();
}
if (!pism) {
sple();
}
if (zocs != 8) {
hetwal();
}
pric();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: