Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > break;


Автор: Guest 21.11.2003, 14:47
Народ, просьба ответить на такой вопрос:
Почему инструкция break; в этом примере

for(;;)
{
if()
{
break;
}

}
выбрасывает меня из цикла for,
а в этом -
for(;;)
{
swich()
{
case 1:
break;
case 2:
break;
}
}
она только возвращает меня в конец цикла?
Показана общая структура, на пустые скобки и т.д. внимания не обращать.
Заранее спасибо.

Автор: Гость_GRON 21.11.2003, 15:17
В смысле - это так, или мои наблюдения неверны?

Автор: Guest 21.11.2003, 15:28
Два предыдущих сообщения - мои.

Автор: GRON 21.11.2003, 15:33
Елки-палки, никак с регистрацией не разберусь.
Все пред. сообщения - МОИ!

Автор: gray_k 21.11.2003, 16:07
Потому, что оператор break производит выход из тела оператора условного перехода.
В первом случае он у тебя один - for - из него и происходит выход.
Во втором случае у тебя есть вложенны оператор switch, соответственно из него и просходит выход и продолжается выполнение оператора for.

Автор: Guest 21.11.2003, 18:23
То есть, насколько я понял - if не является оператором?
И еще (я тугой в терминологии) - что такое "оператор условного перехода"?

Автор: Guest 21.11.2003, 18:24
Это был я.

Автор: GRON 21.11.2003, 18:26
Ё-мое, эта регистрация!! mad.gif

Автор: wertyman 21.11.2003, 18:34
Цитата
То есть, насколько я понял - if не является оператором?
И еще (я тугой в терминологии) - что такое "оператор условного перехода"?


мдя... а ты зачем писать проги сел !? smile.gif наверное стоило сначала теории набратся...

Автор: NiJazz 21.11.2003, 20:37
Да просто break "бьёт" ближайший цикл...

Автор: NiJazz 21.11.2003, 20:38
В это его семантика!!! smile.gif

Автор: GRON 21.11.2003, 20:50
Цитата(wertyman @ 21.11.2003, 18:34)
Цитата
То есть, насколько я понял - if не является оператором?
И еще (я тугой в терминологии) - что такое "оператор условного перехода"?


мдя... а ты зачем писать проги сел !? smile.gif наверное стоило сначала теории набратся...

Тогда посоветуй, где ее набираться? Я имею в виду И-нет (книги тяжело достать, у меня только одна пока).

Автор: setq 22.11.2003, 02:03
чтобы выйти из
Код
for (;;) {
  switch () {
     //...........
  }
}
используй goto.

Автор: wertyman 22.11.2003, 04:52
Цитата
Тогда посоветуй, где ее набираться? Я имею в виду И-нет (книги тяжело достать, у меня только одна пока).

похоже, что опыта в ООБ у тебя вообще как такого нет !? или же есть? я не имею ввиду С++ и VC, я имею ввиду любой язык программирования... потому что тебе не помешало бы просто хотя бы в ООБ(объектно ориентированном программирование) разобратся, тада тебе будут более близки понятия, как условный переход, etc... тот же ВБ или скрипты. smile.gif
вполне хватит одной простенькой книжки... а в инете по поводу этого вообще море инфы:
http://www.codenet.ru/
http://proglib.ru/
http://www.webscript.ru

да и тот же Мелкософт... ;)

Автор: knave 26.11.2003, 17:41
Много всего написали.
break выбрасываетиз той инструкции в которой он предусмотрен. Наприме если в фор вложить ив то выбросит из цикла,так как в if юрека непредусмотрен. если же в фор вставить свич то выбросит в конец свича, так как для него бреак преусмотрен.

Автор: Guest 26.11.2003, 21:25
В общем, я приблизительноп понял, что это особенность "брейка", а не мой глюк. Спасибо всем откликнувшимся.

Автор: MaloY 27.11.2003, 18:11
Цитата(setq @ 22.11.2003, 02:03)
чтобы выйти из
Код
for (;;) {
  switch () {
     //...........
  }
}
используй goto.

нееее...
goto это плохая штука. В больших прогах может заглючить.
Вот в Виндах их много tounge.gif

А серьезно - пользуй 2-а break`a один в swich и там же поставь флаг, а второй в последующем if`е с проверкой флага.

Автор: [ss]3L33T@ 28.11.2003, 15:31
ВО МЛЯ - ФЛЕЙМА-ТО!
smile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gifsmile.gif
Break - бьёт цикл в котором вызван.
И ВСЁ.

Автор: Paradox 28.11.2003, 15:40
Цитата
потому что тебе не помешало бы просто хотя бы в ООБ(объектно ориентированном программирование) разобратся, тада тебе будут более близки понятия, как условный переход, etc

Странно, но я всегда думал что условный переход к парадигме ООП никакого отношения не имеет...
Вообще то понятие достаточно общее для программирования, и каким боком тут ООП зацепилось не пойму ....

Автор: Paradox 28.11.2003, 15:41
Сообщение выше твое ? Не забудь раз десять про это написать smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)