Well, let's see if I can explain it in the most universal sense
Code:
if( predicate )
consequent ;
Here we execute the consequent, only conditionally. That is, only if the predicate is true. Otherwise, we move on to whatever code follows.
Code:
if( predicate )
consequent ;
else
alternate ;
In the above code, the predicate is tested for its boolean evaluation - true or false. If its true, the consequent is executed and the alternate is bypassed. If it is false, the consequent is bypassed and the alternate is executed. So, what part of this construct to you think is equivalent to 'default'?
Code:
if( predicate-1 )
consequent-1 ;
else if( predicate-2 )
consequent-2 ;
Where did the alternate statement go? The alternate is the following if statement! But note that the consequent-2 statement will only execute if the predicate-2 is true. If neither predicate is true, no consequent executes. I think it would be accurate to say that there is no 'default' in this snippet as default implies an 'if-all-else-fails' notion.
Code:
if( predicate-1 )
consequent-1 ;
else if( predicate-2 )
consequent-2 ;
else
alternate ;
Now we have an if with another if as its alternate, as in the previous snippet, but that second if now has its own alternate. So by now it should be clear that the unconditional else statement is the default. Don't forget though, we only branch to an else if the preceding predicate was false.