In case based on one condition we have to display an element/ html section , then ngIf is suitable. But if we have multiple elements / html sections for different value of an expression/ property , then we should use ngSwitch.
Ex:-
ngIf
<div *ngIf="showSection()">
show this section if showSection() method returns true
</div>
ngSwitch
<div [ngSwitch]="property.value">
<div *ngSwitchCase="'1'">
show this section if property value is 1
</div>
<div *ngSwitchCase="'2'">
show this section if property value is 2
</div>
<div *ngSwitchCase="'3'">
show this section if property value is 3
</div>
<div *ngSwitchDefault>
show this section if property value is neither 1 nor 2 nor 3
</div>
</div>