Differentiate between else-if and switch selection structures. 

Both else-if and switch are used to handle multiple conditions, but they differ in usage. The else-if structure is a sequence of if statements where each condition is checked one after the other, and the first condition that evaluates to true executes its corresponding block of code. It is useful when conditions are based on different relational checks. In contrast, switch is ideal when there are multiple discrete values for a single variable to be checked. It works more efficiently than else-if when the conditions are simple value comparisons, such as checking against constant values or variables, as it reduces the need for multiple comparisons.