Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

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

05.10.2015, 08:46. Просмотров 365. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2015, 08:46
Ответы с готовыми решениями:

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

Как корректно прервать цикл? (нюансы использования циклов, операторов ветвления и оператора break)
Здравствуйте! такая форма работает...цикл нормально прерывается for(double...

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

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

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

10
tigerKR
Заблокирован
05.10.2015, 08:51 2
программа выйдет из цикла и пойдёт дальше по программе (за пределами for)
0
hoggy
Нарушитель
Эксперт С++
7087 / 3130 / 648
Регистрация: 15.11.2014
Сообщений: 7,209
Завершенные тесты: 1
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
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
05.10.2015, 09:01  [ТС] 4
Цитата Сообщение от hoggy Посмотреть сообщение
случай, когда break является часть блока ветвления
То есть выйдет только из ветвления if а цикл продолжится?
0
tigerKR
Заблокирован
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
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
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
tigerKR
Заблокирован
05.10.2015, 09:13 7
разницы никакой, так просто читабельнее

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
не лепить все в одну строчку
приблизительно вот это хотел сказать )
0
ValeryS
Модератор
7272 / 5526 / 692
Регистрация: 14.02.2011
Сообщений: 18,725
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
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
05.10.2015, 12:24  [ТС] 9
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
0
Kuzia domovenok
2357 / 2091 / 494
Регистрация: 25.03.2012
Сообщений: 7,487
Записей в блоге: 1
05.10.2015, 12:47 10
Цитата Сообщение от Aqua77 Посмотреть сообщение
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
1) короче, надо к ЕГЭ по русскому готовиться кое-кому.
2) break это не оператор, а ключевое слово языка.
3) Тебе уже сказали - всё дело в фигурных скобках, но ты, даже получив ответ, продолжаешь игнорировать это замечание.
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
05.10.2015, 12:52 11
Aqua77, break не наш выбор наш выбор terminate? ye а если серьезно представляй так, ты просишь пк делать одно и тоже, но только до 12-00. Это две ветки в цикле, а потом как приходит 12-00 ты выходишь оператором break/
И касаемо фигурных скобок правильно тебе люди говорят что бы не запутаться ставь их всегда, я лично настроил свою среду что даже если я пишу условия в одну строчку она все равно подставляет их, на много проще разбираться в ошибках и потом читать код!
0
05.10.2015, 12:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 12:52

Оператор break
Подскажите, пожалуйста почему оператор break в строке 44 выдаёт ошибку, и как...

Цикл for и оператор break
Привет всем. Задание такое я должен вводить элементы массива. Если ввод...

Break не выводит из цикла while
Здравствуйте! У меня возникла такая проблема - в этом коде break не хочет...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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