ChapterÂ 7.Â Making Control Flow Easy to Read
If code had no conditionals, loops, or any other control flow statements, it would be very easy to read. These jumps and branches are the hard stuff, where code can get confusing quickly. This chapter is about making the control flow in your code easy to read.
Make all your conditionals, loops, and other changes to control flow as ânaturalâ as possibleâwritten in a way that doesnât make the reader stop and reread your code.
The Order of Arguments in Conditionals
Which of these two pieces of code is more readable:
if (length >= 10)
if (10 <= length)
To most programmers, the first is much more readable. But what about the next two:
while (bytes_received < bytes_expected)
while (bytes_expected > bytes_received)
Again, the first version is more readable. But
why? Whatâs the general rule? How do you decide whether itâs better to
a < b or
b > a?
Hereâs a guideline weâve found useful:
|Left-hand side||Right-hand side|
The expression âbeing interrogated,â whose value is more in flux.
The expression being compared against, whose value is more constant.
This guideline matches English usageâitâs pretty natural to say, âif you make at least $100K/yearâ or âif you are at least 18 years old.â Itâs unnatural to say, âif 18 years is less than or equal to your age.â
This explains why
while (bytes_received < bytes_expected) ...