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 (trianu() || (obre == 7 || gedis() > 1) && !bedu && pitfos() && !(pa && (ensoth() || !(cojort() > 5)) && !ris)) {
...
...
// Pretend there is lots of code here
...
...
} else {
ajuwn();
}
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 ((pa && (ensoth() || !(cojort() > 5)) && !ris || !pitfos() || bedu || gedis() < 1 && obre != 7) && !trianu()) {
ajuwn();
} 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 (hofi && haep || !sa || rento() || luesga() || su > uc || !stia || !inbo || spaher() && haep || !sa || rento() || luesga() || su > uc || !stia || !inbo) {
if (!stia || !inbo) {
if (rento() || luesga() || su > uc) {
if (!sa) {
if (haep) {
return true;
}
}
}
}
if (ki) {
return true;
}
}
return false;
return (ki || hofi || spaher()) && (haep || !sa || rento() || luesga() || su > uc || !stia || !inbo);
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 (!spaher() && !hofi && !ki) {
if (!haep) {
return false;
}
if (sa) {
return false;
}
if (!rento()) {
return false;
}
if (!luesga()) {
return false;
}
if (su < uc) {
return false;
}
if (stia) {
return false;
}
if (inbo) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (rac == false) {
repra();
}
if (grop == false && rac != false) {
iotAdeng();
} else if (heom >= us && rac != false && grop != false) {
otrur();
}
if (o == 1 && rac != false && grop != false && heom <= us) {
engco();
} else if (uss == false && rac != false && grop != false && heom <= us && o != 1) {
wrudbo();
} else if (pri == 8 == true && rac != false && grop != false && heom <= us && o != 1 && uss != false) {
cernet();
}
if (imon == true && rac != false && grop != false && heom <= us && o != 1 && uss != false && pri == 8 != true) {
lasta();
}
if (miu == true && rac != false && grop != false && heom <= us && o != 1 && uss != false && pri == 8 != true && imon != true) {
eacba();
} else if (rac != false && grop != false && heom <= us && o != 1 && uss != false && pri == 8 != true && imon != true && miu != true) {
wimint();
}
{
if (!rac) {
repra();
}
if (!grop) {
iotAdeng();
}
if (heom >= us) {
otrur();
}
if (o == 1) {
engco();
}
if (!uss) {
wrudbo();
}
if (pri == 8) {
cernet();
}
if (imon) {
lasta();
}
if (miu) {
eacba();
}
wimint();
}
Things to double-check in your solution:
== true and == false checks?else, no final if.Related puzzles: