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 ((in && rarpo() && !lu || eclos()) && (!ia && i == famod() || searba() != 4 && (dio || spea >= em || dedRindi()))) {
...
...
// Pretend there is lots of code here
...
...
} else {
cici();
}
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 ((!dedRindi() && spea <= em && !dio || searba() == 4) && (i != famod() || ia) || !eclos() && (lu || !rarpo() || !in)) {
cici();
} 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 (iant && caol && iass() || e && ratu || caed() && caol && iass() || e && ratu) {
if (!si && iass() || e && ratu) {
if (e && ratu) {
if (iass()) {
return true;
}
}
if (!lun) {
return true;
}
if (gic == raoc) {
return true;
}
if (plo == siu) {
return true;
}
if (ne) {
return true;
}
}
}
return false;
return (ne && plo == siu && gic == raoc && !lun || !si || (iant || caed()) && caol) && (iass() || e && ratu);
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 (!caol && si && lun || gic != raoc || plo != siu || !ne || !caed() && !iant && si && lun || gic != raoc || plo != siu || !ne) {
if (!e && !iass()) {
if (!iass()) {
return false;
}
if (!ratu) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (hos == true) {
engha();
}
if (su == false && hos != true) {
aphpor();
} else if (rish == true && hos != true && su != false) {
risGnass();
}
if (!lo && hos != true && su != false && rish != true) {
esnack();
} else if (cec == true && hos != true && su != false && rish != true && lo) {
piost();
}
if (plul == false && hos != true && su != false && rish != true && lo && cec != true) {
ciass();
}
if (pa == true && hos != true && su != false && rish != true && lo && cec != true && plul != false) {
gion();
}
if (cac != 6 && hos != true && su != false && rish != true && lo && cec != true && plul != false && pa != true) {
weud();
}
if (a == true && hos != true && su != false && rish != true && lo && cec != true && plul != false && pa != true && cac == 6) {
breen();
}
if (gaop && hos != true && su != false && rish != true && lo && cec != true && plul != false && pa != true && cac == 6 && a != true) {
tuni();
}
{
if (hos) {
engha();
}
if (!su) {
aphpor();
}
if (rish) {
risGnass();
}
if (!lo) {
esnack();
}
if (cec) {
piost();
}
if (!plul) {
ciass();
}
if (pa) {
gion();
}
if (cac != 6) {
weud();
}
if (a) {
breen();
}
if (gaop) {
tuni();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: