Форум программистов, компьютерный форум CyberForum.ru

switch - C++

Восстановить пароль Регистрация
 
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
10.08.2011, 17:21     switch #1
C++
1
2
3
4
5
6
7
8
9
10
swith(n)
{
case 1: 
{
return 0;
// Надо ли в этом случае писать break ?
// В каких случаях работа будет нарушена ?
}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2011, 17:21     switch
Посмотрите здесь:

C++ switch
C++ Switch C++
Switch C++
switch C++
C++ Switch
Оператор switch C++
C++ Switch
C++ switch
C++ switch
C++ if в switch
Switch C++
C++ Switch

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
10.08.2011, 17:24     switch #2
правило написания нужно соблюдать всегда, т.к. из-за таких упущений и случаются ошибки.
мысль "а все равно не дойдет" не есть верная
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.08.2011, 17:34     switch #3
Цитата Сообщение от Noname2512 Посмотреть сообщение
// В каких случаях работа будет нарушена ?
Ни в каких
Функция завершится после return.
Сыроежка
Заблокирован
10.08.2011, 19:05     switch #4
Цитата Сообщение от Noname2512 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
swith(n)
{
case 1: 
{
return 0;
// Надо ли в этом случае писать break ?
// В каких случаях работа будет нарушена ?
}
 
}
Очевидно, что до break управление не дойдет, так как будет осуществлен выход из функции по команде return. Поэтому вопрос о том, ставить ли break, носит стилистический характер. Если у вас небольшая функция, то есть весь ее код помещается на одном экране, то такой код допустим. Однако для функций большего размера лучше вообще не ставить return внутрь конструкции switch, так как такой код трудно воспринимать. То есть читатель вашего кода может вообще не заметить, что у вас внутри switch стоит return, если 1) сама конструкция switch громозкая, то есть содержит много строк кода; 2) функция достаточно большая и занимает несколько экранов.
Что касается break, то обычно даже если стоит return некоторые программисты ставят break после return. Но опять-таки, если блок case состоит не из одного return, а содержит и другие предложения. Это связано с тем, что код может меняться, и какой-нибудь программист в будущем решит убрать из этого case предложение с return. Тогда, убрав return, он может забыть поставить break, и логика выполнения switch будет нарушена. То есть break в этом случае является подстраховкой на то, если return по каким-то причинам будет удалено в будущем.
Yandex
Объявления
10.08.2011, 19:05     switch
Ответ Создать тему
Опции темы

Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru