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

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

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

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

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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2015, 08:46
Ответы с готовыми решениями:

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

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

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

10
Заблокирован
05.10.2015, 08:51
программа выйдет из цикла и пойдёт дальше по программе (за пределами for)
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.10.2015, 08:57
Цитата Сообщение от 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  [ТС]
Цитата Сообщение от hoggy Посмотреть сообщение
случай, когда break является часть блока ветвления
То есть выйдет только из ветвления if а цикл продолжится?
0
Заблокирован
05.10.2015, 09:06
правильней написать было бы вот так:

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
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,868
05.10.2015, 09:10
Цитата Сообщение от 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
разницы никакой, так просто читабельнее

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
не лепить все в одну строчку
приблизительно вот это хотел сказать )
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,868
05.10.2015, 09:15
правильно
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  [ТС]
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
05.10.2015, 12:47
Цитата Сообщение от Aqua77 Посмотреть сообщение
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
1) короче, надо к ЕГЭ по русскому готовиться кое-кому.
2) break это не оператор, а ключевое слово языка.
3) Тебе уже сказали - всё дело в фигурных скобках, но ты, даже получив ответ, продолжаешь игнорировать это замечание.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
05.10.2015, 12:52
Aqua77, break не наш выбор наш выбор terminate? ye а если серьезно представляй так, ты просишь пк делать одно и тоже, но только до 12-00. Это две ветки в цикле, а потом как приходит 12-00 ты выходишь оператором break/
И касаемо фигурных скобок правильно тебе люди говорят что бы не запутаться ставь их всегда, я лично настроил свою среду что даже если я пишу условия в одну строчку она все равно подставляет их, на много проще разбираться в ошибках и потом читать код!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2015, 12:52
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru