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 (!sas && bi >= neud() || flol < pe && (hacEgli() || i) || (o && po != mescid() || ho) && to) {
...
...
// Pretend there is lots of code here
...
...
} else {
ucsai();
}
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 ((!to || !ho && (po == mescid() || !o)) && (!i && !hacEgli() || flol > pe) && (bi <= neud() || sas)) {
ucsai();
} 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 (menno() && !ees || acnu() || soin() || onud()) {
if (!lun && silan() && soii && !knia) {
if (!knia) {
return true;
}
if (uncrun() == 6) {
return true;
}
}
}
return false;
return (uncrun() == 6 || !lun && silan() && soii) && !knia || menno() && (!ees || acnu() || soin()) || onud();
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 (!menno() && knia || !soii && uncrun() != 6 || !silan() && uncrun() != 6 || lun && uncrun() != 6) {
if (!soii && uncrun() != 6 || !silan() && uncrun() != 6 || lun && uncrun() != 6) {
if (knia) {
return false;
}
}
if (ees) {
return false;
}
if (!acnu()) {
return false;
}
if (!soin()) {
return false;
}
}
if (!onud()) {
return false;
}
return true;
Simplify the following messy chain of conditionals:
if (olhi == true) {
angHolec();
}
if (io && olhi != true) {
echer();
}
if (no == true && olhi != true && !io) {
ugrint();
} else if (ixin == true && olhi != true && !io && no != true) {
unmen();
}
if (edni >= ston && olhi != true && !io && no != true && ixin != true) {
acbuec();
}
if (ooad == false && olhi != true && !io && no != true && ixin != true && edni <= ston) {
piod();
}
if (ed == false && olhi != true && !io && no != true && ixin != true && edni <= ston && ooad != false) {
miuLauch();
}
if (ue == false && olhi != true && !io && no != true && ixin != true && edni <= ston && ooad != false && ed != false) {
adte();
}
if (oga == true && olhi != true && !io && no != true && ixin != true && edni <= ston && ooad != false && ed != false && ue != false) {
eslet();
}
{
if (olhi) {
angHolec();
}
if (io) {
echer();
}
if (no) {
ugrint();
}
if (ixin) {
unmen();
}
if (edni >= ston) {
acbuec();
}
if (!ooad) {
piod();
}
if (!ed) {
miuLauch();
}
if (!ue) {
adte();
}
if (oga) {
eslet();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: