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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Noname2512
4 / 4 / 1
Регистрация: 25.06.2010
Сообщений: 106
#1

switch - C++

10.08.2011, 17:21. Просмотров 866. Ответов 3
Метки нет (Все метки)

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

Оптимальная конструкция switch-case-while / while-switch-case - C++
Имеется конструкция типа: switch() { case 1: while() { ... }

While{switch{switch{break;}}} break выходит из while - C++
В общем необходимо конструкцию switch запускать в цикле, в каждом case X: стоит свой break;, да бы выполнился один case, а не все. Проблема...

Switch case внутри switch case - C++
Привет всем! Нужна помощь. Пишу калькулятор с консольным меню. Так вот, используется цикл while, внутри которого у меня switch...

Switch - C++
Ошибка в 19 строке: n cannot appear in a constant-expression (потому что n это переменная?). #include <iostream> #include <math.h> ...

Switch - C++
Определить порядковый номер того дня високосного года, который имеет заданую дату и месяц. В программе воспользоваться командой "switch". ...

switch - C++
switch (k) { case 1 : printf(rus("Выход\n")); break; case 2 : printf(rus("Загрузить\n")); break; case 3 :...

3
co6ak
Кошковед
408 / 501 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
10.08.2011, 17:24 #2
правило написания нужно соблюдать всегда, т.к. из-за таких упущений и случаются ошибки.
мысль "а все равно не дойдет" не есть верная
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.08.2011, 17:34 #3
Цитата Сообщение от Noname2512 Посмотреть сообщение
// В каких случаях работа будет нарушена ?
Ни в каких
Функция завершится после return.
0
Сыроежка
Заблокирован
10.08.2011, 19:05 #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 по каким-то причинам будет удалено в будущем.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2011, 19:05
Привет! Вот еще темы с ответами:

switch - C++
5. как пользоваться switch()

Switch C++ - C++
Всем привет К примеру есть (на Дэлфи): Case a of 1..5: begin ..... end; т.е. сработает на числах от 1 до 5. нужно эту же запись...

switch - C++
Помогите!!

switch - C++
switch(user_selection){ case 1: mainMenu.switchMenu(user_selection); break; case 2: mainMenu.switchMenu(user_selection); break; case...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
10.08.2011, 19:05
Ответ Создать тему
Опции темы

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