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 (!e || smon() == pridgi() || !kess || !(ete != 2 && celBeibef() == 8 || ces == eru) && !deng) {
...
...
// Pretend there is lots of code here
...
...
} else {
felma();
}
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 ((deng || ete != 2 && celBeibef() == 8 || ces == eru) && kess && smon() != pridgi() && e) {
felma();
} 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 (saed() && treCio() && hoeri() != 0 && outhar() < 3 || os || ni && outhar() < 3 || os) {
if (ursi == 7 && outhar() < 3 || os) {
if (os) {
if (outhar() < 3) {
return true;
}
}
if (de) {
return true;
}
}
}
return false;
return (de || ursi == 7 || saed() && treCio() && (hoeri() != 0 || ni)) && (outhar() < 3 || os);
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 (!ni && hoeri() == 0 && ursi != 7 && !de || !treCio() && ursi != 7 && !de || !saed() && ursi != 7 && !de) {
if (outhar() > 3) {
return false;
}
if (!os) {
return false;
}
}
return true;
Simplify the following messy chain of conditionals:
if (geot) {
sorddi();
}
if (hi == true && !geot) {
losuac();
} else if (as == false && !geot && hi != true) {
pror();
} else if (osin == false && !geot && hi != true && as != false) {
pekRer();
} else if (iir >= o && !geot && hi != true && as != false && osin != false) {
bress();
}
if (ne == false && !geot && hi != true && as != false && osin != false && iir <= o) {
chorst();
}
if (i == 6 && !geot && hi != true && as != false && osin != false && iir <= o && ne != false) {
kalcen();
}
{
if (geot) {
sorddi();
}
if (hi) {
losuac();
}
if (!as) {
pror();
}
if (!osin) {
pekRer();
}
if (iir >= o) {
bress();
}
if (!ne) {
chorst();
}
if (i == 6) {
kalcen();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: