Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Оператор break выходит из цикла и ветвления?

05.10.2015, 08:46. Показов 3170. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Например код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int j=0; j<10; j++)
{
if(j<10)
cout<<"Выход!";break;
Другие операторы;
Другие операторы;
Другие операторы;
}
 
for(int j=0; j<10; j++)
{
программа перейдёт сюда или выйдет из программы?
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2015, 08:46
Ответы с готовыми решениями:

Составьте программу для решения поставленной задачи, используя оператор цикла и операторы ветвления
помогите пожалуйста((((

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n...

Как корректно прервать цикл? (нюансы использования циклов, операторов ветвления и оператора break)
Здравствуйте! такая форма работает...цикл нормально прерывается for(double i=1; i&lt;=10; i++){ ...

Оператор break как оператор go to next
Подскажите, в этом примере break эквивалентна действию оператора go to next?

10
Заблокирован
05.10.2015, 08:51 2
программа выйдет из цикла и пойдёт дальше по программе (за пределами for)
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.10.2015, 08:57 3
Цитата Сообщение от Aqua77 Посмотреть сообщение
if(j<10)
cout<<"Выход!";break;
в вашем случае break вообще не является частью блока ветвления.

обратите внимание:

ваш случай:
C++
1
2
3
4
5
if(j<10)
{
    cout<<"Выход!";
}
break;
случай, когда break является часть блока ветвления:

C++
1
2
3
4
5
if(j<10)
{
    cout<<"Выход!";
    break;
}
1
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
05.10.2015, 09:01  [ТС] 4
Цитата Сообщение от hoggy Посмотреть сообщение
случай, когда break является часть блока ветвления
То есть выйдет только из ветвления if а цикл продолжится?
0
Заблокирован
05.10.2015, 09:06 5
правильней написать было бы вот так:

C++
1
2
3
4
5
6
7
8
9
10
for(int j=0; j<10; j++)
{
if(j<10) cout<<"Выход!";
 
break;
 
Другие операторы;
Другие операторы;
Другие операторы;
}
другие операторы просто не выполнятся, после условия на break прога выйдет из цыкла
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
05.10.2015, 09:10 6
Цитата Сообщение от Aqua77 Посмотреть сообщение
То есть выйдет только из ветвления if а цикл продолжится?
нет
в данном случае цикл прекратится всегда, на первой же итерации
а не тогда когда j<10
а почему так hoggy объяснил
посему лучше всегда использовать фигурные скобки для составного оператора
не лепить все в одну строчку
чтобы потом не вылавливать досадных ошибок

Добавлено через 1 минуту
Цитата Сообщение от tigerKR Посмотреть сообщение
правильней написать было бы вот так:
Цитата Сообщение от tigerKR Посмотреть сообщение
C++
1
2
3
if(j<10) cout<<"Выход!";
 
break;
и в чем разница по сравнению с
Цитата Сообщение от Aqua77 Посмотреть сообщение
C++
1
2
if(j<10)
cout<<"Выход!";break;
0
Заблокирован
05.10.2015, 09:13 7
разницы никакой, так просто читабельнее

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
не лепить все в одну строчку
приблизительно вот это хотел сказать )
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
05.10.2015, 09:15 8
правильно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int j=0; j<10; j++)
 {
 if(условия)
  {
 cout<<"Выход!";
  break;
 }
 Другие операторы;
 Другие операторы;
 Другие операторы;
 }
 //программа перейдёт сюда по окончании цикла или при срабатывании условия
 for(int j=0; j<10; j++)
 {
 
 }
но если написать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int j=0;j<10 ; j++)
 {
 if(j<10)
  {
 cout<<"Выход!";
  break;
 }
 Другие операторы;
 Другие операторы;
 Другие операторы;
 }
 
 for(int j=0; j<10; j++)
 {
 
 }
то опять же цикл прервется при первой же итерации поскольку j=0 а это меньше 10
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
05.10.2015, 12:24  [ТС] 9
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 1
05.10.2015, 12:47 10
Цитата Сообщение от Aqua77 Посмотреть сообщение
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
1) короче, надо к ЕГЭ по русскому готовиться кое-кому.
2) break это не оператор, а ключевое слово языка.
3) Тебе уже сказали - всё дело в фигурных скобках, но ты, даже получив ответ, продолжаешь игнорировать это замечание.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
05.10.2015, 12:52 11
Aqua77, break не наш выбор наш выбор terminate? ye а если серьезно представляй так, ты просишь пк делать одно и тоже, но только до 12-00. Это две ветки в цикле, а потом как приходит 12-00 ты выходишь оператором break/
И касаемо фигурных скобок правильно тебе люди говорят что бы не запутаться ставь их всегда, я лично настроил свою среду что даже если я пишу условия в одну строчку она все равно подставляет их, на много проще разбираться в ошибках и потом читать код!
0
05.10.2015, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2015, 12:52
Помогаю со студенческими работами здесь

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

оператор Break
Дано 20 чисел. Вывести на экран порядковые номера элементов и элементы удовлетворяющие условию 0&lt;...

оператор break
Здравствуйте! Я где-то слышал, что использовать оператор break для выхода из цикла - не хорошо. И...

Оператор break
Почему цикл if не прокручивается?? Только индекс первого элемента находит и все for i:=1 to 10...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru