If you were the kind of person who is blindly following the "don't ever use continue" rule, then the above loop will probably end up looking like this instead:
Code:
while (fgets(ln, MAX, stdin)) {
if (!is_blank(ln) && !is_comment(ln)) {
/* process line ... */
}
// NB: please don't put any code here
}
This version is inferior to me because it adds an extra level of indentation for no reason. Plus in this version you really need to make sure you don't put any code right before the closing brace of the loop if you want to properly emulate 'continue'. In real code, people never add such a comment so when you review the code you have to carefully make sure that no surprise code gets added after your monster if block exits.