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>

