Другие языки программирования и технологии

Можно в функции switch параметром использовать return? С++

Виталий 1976
Виталий 1976
112
switch - не функция, а оператор выбора. return - возврат из функции к месту её вызова. Если switch расположен в функции (а где же ему ещё быть) , то return завершит её выполнение. Требуется чтобы то что возвращает return соответствовало возвращаемому значению функции. Если функция не возвращает, то и указывать возвращаемое значение не надо. Вывод: МОЖНО
Александр Малышев
Александр Малышев
83 702
Лучший ответ
Во-первых,
Switch - это не функция и не оператор!! !

Это конрольная структура!!!! Потому что, в зависимости от сравнения с каждым случаем case с начальным условием - конролируется дальнейшее поведение приложения.

Например

age = 13;

switch(age){

case '13' :
// делать что-то когда возраст 13
break;

case '17':
// делать что-то когда возраст 17
break;

default: // делать что-то когда возраст ни 13 ни 17

}

Это экивалент контрольной структуре IF:

if ( age === 13 ){

} else if ( age ===17 ){

}

....else {
default: // делать что-то когда возраст ни 13 ни 17
}

Во вторых,
Параметер это искомый агрумент функции. Функции! ! Этот термин не имеет отношения к контрольной структуре IF/switch!

int test(int a){ // <-- a это параметер
return a;
}

test(1); / <-- a "1" теперь - это аргумент!

В третьих,
Return - означает немедленно выйти из функции тем самым вернув её значение. Как было сказано, выше switch это контрольная структура!

Если использовать свитчер, то тогда не нужно использовать break для прерывания контроля. Например:

int test(int age)
switch(age){
case '13':
return 1;
default: return 0;
}

}
Pavel K
Pavel K
4 333