Циклы вообще можно выбросить из языка, их можно заменить, например, рекурсией, а ветвление - более базовая вещь в программировании, без которой вроде как и нельзя. Поэтому сравнение некорректное, ведь switch - это просто сопоставление с образцом, а не полноценная проверка логических условий.
bromzh: Рекурсии затратны по памяти.
switch в C++, насколько мне известно, там да - сопоставление с образцом(числа). А в JavaScript можно работать с любыми типами данных
switch - это частный случай if-else (т.е. свитч можно на иф заменить, а обратно не всегда)
В питоне, например, свитча нет вообще, и отсутствие его не замечается.