Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It depends on the compactness of the code. If it's a large function, I try to avoid it, but 100% adherence to "one entry, one exit" kind of misses the spirit of the idiom. Something like:

    if (condition)
      return true;
    return false;
is no less readable and sometimes more intuitive than the equivalent

    bool x = false;
    if (condition)
      x = true;
    return x;


How about this:

   return condition;


I'm certain he was using True and False as arbitrary values. It's a shame his point was missed. Please try to focus on his actual argument.


I'm not so convinced that it's not a fundamental thing.

Maybe someone wants to post a 'better' example and we'll see where it goes?


How about:

    if (condition())
        return 10;
    return 20;
versus

    val = 20;
    if (condition())
         val = 10;
    return val;


Well:

    val = condition() ? 20 : 10;
    return val;


Did you invert the logic of the parent post on purpose?


Or even:

    return condition() ? 10 : 20;


Yeah, that's definitely a more reasonable way to implement the above example. I didn't put much thought into the specifics of the code, since the specifics have nothing to do with what point I was making. I was responding to a question about multiple returns; the simple example was supposed to illustrate my opinion on multiple returns, not how to return a boolean value given a boolean condition.


if `if` was an expression rather than a statement one could write

return if condition() 10 else 20

I am not sure this is more readable though.


There is an 'if' expression, it's just spelled '?' and else is ':'. Mentioned a few posts up.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: