if vs switch case in latest ARM GCC

Hi Experts,

What is the key difference between if/else  and swtich case statements  ?

How the modern ARM GCC compilers handles it ?