Consider this code (written in C to demonstrate the problem):

```
int foo1(int a)
{
    if(a)
         return 33;
    return 22;
}

int foo2(int a)
{
    if(a)
         return 33;
    else
         return 22;
}

```

As you can see, `foo1(int a)` does exactly the same as `foo2(int a)`. `foo1(int a)` is shorter, however I get the impression that `foo2(int a)` is just more logical (that's only my impression). Which one is better? Is it good to use `else` with `if` that is the last control statement in function code and its block always executes `return`?