Другие языки программирования и технологии

Выход из бесконечного цикла С++

Есть бесконечный цикл. Как сделать так, чтобы программа завершила выполнение этой функции и перешла на другую(при нажатии клавиши).

void f1(){
for (int j = 0; j>-1; j++){
...код цикла...
}
}

main(){
f1();
f2();

надо чтобы при нажатии клавиши прекратило выполнятся f1 и начало выполнятся f2. При этом надо, чтобы в работе цикла остановок и пауз небыло.
Efim Mavlianov
Efim Mavlianov
359
Данный цикл не является бесконечным! Через 2^32-1 итераций он завершится!
Бесконечный цикл можно записать, например, так (выход по нажатию ENTER)
for(;;)
{
c=getch();
if(c==13) break;
}
АС
Александр Славута
76 473
Лучший ответ
Есть такой оператор break называется. Служит для прерывания любых циклов.
ответ напишу за еду ))) да и код тоже
у тебя этот код работает? просто запускать j++ если j int это не до конца надёжно.. . по вопросу:
чтобы выйти из функции можно использовать exit или return соответственно для delphi и c++, чтобы проверить условие в цикле который ты написал нужно собственно в нём добавить проверку этого условия (нужно добавить какую нибудь логическую переменную признак) , но тут возникает проблема -кто изменит значение признака - можно конечно запустить поток отдельный и в нём по какой то логике изменить значение признака, а проще на обработчик от какой нибудь кнопки повесить изменение признака и в цикл добавить Application->processmessages чтобы принудительно считать сообщения из очереди.. . т. к. если не делать этого принудительно то клик по кнопке не отработается пока не завершится цикл а у тебя это вообще никогда не произойдёт.. . вот пример на делфях... .

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
abort:=true;
end;
//////
while(i<=StrToInt(Edit2.Text))do - у меня цикл не бесконечный но долгий довольно
try
Caption:='Текущий - '+IntToStr(i)+'; Найдено - '+IntToStr(counter)+';';
application.ProcessMessages;
if abort then
exit;
except
end;
/////

break наверное тоже может проканать...
20руб yandex напишу)
еще проще для тебя сделать так : для каждой кнопки создать событие и уже в событии кнопок прописать нужные функции.