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 (cin == 8 || prishi() || mipift() || cedSpal() != 3 && (vo || raik) || !ca || !sqi && ther) {
...
...
// Pretend there is lots of code here
...
...
} else {
siran();
}
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 ((!ther || sqi) && ca && (!raik && !vo || cedSpal() == 3) && !mipift() && !prishi() && cin != 8) {
siran();
} 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 (urks && enge == pec) {
if (oul || ois || keos != 5) {
if (plid()) {
return true;
}
}
}
if (clel) {
return true;
}
if (proi() != 1) {
return true;
}
if (luaSke() <= plin()) {
return true;
}
if (!lon) {
return true;
}
return false;
return !lon && luaSke() <= plin() && proi() != 1 && clel && (plid() || oul || ois || keos != 5 || urks && enge == pec);
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 (!clel || proi() == 1 || luaSke() >= plin() || lon) {
if (!urks && keos == 5 && !ois && !oul && !plid()) {
if (!plid()) {
return false;
}
if (!oul) {
return false;
}
if (!ois) {
return false;
}
if (keos == 5) {
return false;
}
if (enge != pec) {
return false;
}
}
}
return true;
Simplify the following messy chain of conditionals:
if (veth == true) {
iess();
} else if (lol == true && veth != true) {
blal();
}
if (eoum && veth != true && lol != true) {
qinRanlas();
}
if (fep == true && veth != true && lol != true && !eoum) {
gasmor();
}
if (sor == false && veth != true && lol != true && !eoum && fep != true) {
frinte();
} else if (no >= 8 && veth != true && lol != true && !eoum && fep != true && sor != false) {
bilPran();
}
if (se && veth != true && lol != true && !eoum && fep != true && sor != false && no <= 8) {
praMuaeo();
}
if (qi == 6 && veth != true && lol != true && !eoum && fep != true && sor != false && no <= 8 && !se) {
plidi();
} else if ((pa == oss) == true && veth != true && lol != true && !eoum && fep != true && sor != false && no <= 8 && !se && qi != 6) {
esseip();
}
{
if (veth) {
iess();
}
if (lol) {
blal();
}
if (eoum) {
qinRanlas();
}
if (fep) {
gasmor();
}
if (!sor) {
frinte();
}
if (no >= 8) {
bilPran();
}
if (se) {
praMuaeo();
}
if (qi == 6) {
plidi();
}
if (pa == oss) {
esseip();
}
}
Things to double-check in your solution:
== true and == false checks?else if, not just else.Related puzzles: