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

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

Войти
Регистрация
Восстановить пароль
 
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
#1

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

05.10.2015, 08:46. Просмотров 340. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Оператор break выходит из цикла и ветвления? (C++):

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

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

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

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

Оператор break - C++
Подскажите, пожалуйста почему оператор break в строке 44 выдаёт ошибку, и как её исправить? #include&lt;iostream.h&gt; #include&lt;conio.h&gt; ...

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

10
tigerKR
Заблокирован
05.10.2015, 08:51 #2
программа выйдет из цикла и пойдёт дальше по программе (за пределами for)
0
hoggy
6858 / 3059 / 525
Регистрация: 15.11.2014
Сообщений: 6,945
Завершенные тесты: 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 / 16
Регистрация: 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
Модератор
7012 / 5350 / 528
Регистрация: 14.02.2011
Сообщений: 18,051
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
Модератор
7012 / 5350 / 528
Регистрация: 14.02.2011
Сообщений: 18,051
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 / 16
Регистрация: 13.07.2015
Сообщений: 433
05.10.2015, 12:24  [ТС] #9
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
0
Kuzia domovenok
2130 / 1959 / 197
Регистрация: 25.03.2012
Сообщений: 6,825
Записей в блоге: 1
05.10.2015, 12:47 #10
Цитата Сообщение от Aqua77 Посмотреть сообщение
Кароче, чтобы выйти из цикла при условии. Нужно в if поместить оператор брэк; И тогда будет выполнятся следующий оператор или цикл
1) короче, надо к ЕГЭ по русскому готовиться кое-кому.
2) break это не оператор, а ключевое слово языка.
3) Тебе уже сказали - всё дело в фигурных скобках, но ты, даже получив ответ, продолжаешь игнорировать это замечание.
0
Mesteriis
374 / 157 / 40
Регистрация: 08.08.2015
Сообщений: 1,121
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

Цикл for и оператор break - C++
Привет всем. Задание такое я должен вводить элементы массива. Если ввод неправильный (т.е. не число ) то я должен сохранить индекс...

Break не выводит из цикла while - C++
Здравствуйте! У меня возникла такая проблема - в этом коде break не хочет выходить из цикла, если ему попадается строка &quot;}&quot;. Перед if я для...

Оператор ветвления - C++
Дано целое четырехзначное число.Определить,является ли произведение его цифр трехзначным числом.Выходной файл должен содержать одно слово,...

оператор ветвления - C++
есть задание, надо найти пару значений (вводимых) которые в суме будут равны третему, я вроде бы написал програму ну она почему-то...


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

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

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