Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2009, 02:06   #1
coper
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 28
По умолчанию Switch вложенный в бесконечный цикл

Здравствуйте! Прошу подсказать как выкрутиться из ситуации. Нужно чтобы в каждом из case при нужных условиях break означал выход из бесконечного цикла а не конец case блока... пробовал чтото сделать ничего не получилось((;
Код:
int i=0;
for(; ; i++)
{	switch(sost*1){
case 1:
		
	if(knd(vr[i])==1)
		sost=4;
		if(knd(vr[i])==2)
	    sost=3;
		if(knd(vr[i])==3)
		{
		}
        if (knd(vr[i])==5)
			sost=1;
		if (knd(vr[i])==10)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				inside++;
			else break;
			if (knd(vr[i])==4 || knd(vr[i])>5 && knd(vr[i])<10 || knd(vr[i])>10)
				break;
		
		
case 2:
		if(knd(vr[i])==3)
		{
		}
		if (knd(vr[i])==4)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=5;
			else break;
	    if (knd(vr[i])==5)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=6;
			else break;
		if (knd(vr[i])==6)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=7;
			else break;
		if (knd(vr[i])==7)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=8;
			else break;
		if (knd(vr[i])==8)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=9;
			else break;
		if (knd(vr[i])==9)
			if (knd(vr[i+1])>3 && knd(vr[i+1]<10))
				sost=10;
			else break;
		if (knd(vr[i])==11)
		{inside--;
			if (knd(vr[i+1])>7 && knd(vr[i+1]<10))
			{
			}
			else break;};
		if (knd(vr[i])==12)
		{if (inside==0)
		 truth=1;
		break;}
		if (knd(vr[i])>0 && knd(vr[i])<3 || knd(vr[i])==10 || knd(vr[i])==13)
		break;
.... и.т.д
coper вне форума Ответить с цитированием
Старый 16.11.2009, 02:27   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

May the GOTO be with you Ну и как вариант поместить цикл в функцию, ну и return-ом на нужной итерации. Правда в случае с GOTO, даже не знаю что будет со стеком. Мало ли что там может хранится во время выполнения цикла... в общем если там что то и было принадлежащее циклу/switch-у - оно там и останется.
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 16.11.2009 в 02:30.
Ivan_32 вне форума Ответить с цитированием
Старый 16.11.2009, 02:31   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

самый простой для твоего случая способ - завести переменную.
Код:
bool isBreak = false;

for (; !isBreak; i++) {
    ....
}
и перед каждым break ставить isBreak = true;

ну это халявный способ, я бы полностью тут все переписал.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оконная процедура и вложенный switch Пепел Феникса Общие вопросы C/C++ 3 09.09.2009 18:56
Таймаут и бесконечный цикл Terikon Работа с сетью в Delphi 4 30.03.2009 14:48
цикл...и по ходу бесконечный... victum Помощь студентам 10 07.01.2009 15:57
Бесконечный цикл(visual c++) JOFRIF Visual C++ 10 26.08.2008 22:43
Бесконечный цикл Эдуард Общие вопросы C/C++ 4 03.04.2008 17:28