The if statement does NOT do a /halt internally.
if-elseif-else statements operate in clusters. Each cluster begins with a single IF (required), which can then be followed by 1 or more ELSEIF (optional), which can then be followed by a single ELSE (optional).
Example pseudocode:
action 1
action 2
IF (condition 1) { action 3a }
ELSEIF (condition 2) { action 3b }
ELSEIF (condition 3) { action 3c }
ELSE { action 3d }
action 4
action 5
In this script, action 1 and action 2 always happen. If condition 1 is true, action 3a happens and then the script skips ahead to action 4. If condition 1 is false, and condition 2 is true, action 3b happens and then the script skips ahead to action 4. If conditions 1 and 2 are false, and condition 3 is true, action 3c happens and the script skips ahead to action 4. If conditions 1 and 2 and 3 are false, action 3d happens and the script continues to action 4. Action 5 then happens.
In this case, the first match in the IF cluster causes the script to jump to the end of that cluster.
Example pseudocode:
action 1
action 2
IF (condition 1) { action 3 }
IF (condition 2) { action 4 }
IF (condition 3) { action 5 }
action 6
action 7
In this script, action 1 and action 2 always happen. If condition 1 is true, action 3 happens. If condition 2 is true, action 4 happens. If condition 3 is true, action 5 happens. Action 6 and action 7 then happens.
In this case, the IF statements are independent of each other, so if one matches, it doesn't affect the others.
-genius_at_work