Выход из While

97mik

Как выйти из цикла While? То есть если у меня например такая схема:
while q>-1 do
inc(q);
Как мне выйти из него когда например значение q будет 10?
7 ответов

97mik

А просто поставить в условие нельзя?например (q > -1) and (q < 10)


97mik

Так не пойдёт. Надо что-то типо break. Кстати им можно?


97mik

Так не пойдёт. Надо что-то типо break. Кстати им можно?
Во-первых почему "так не пойдет"? Религия запрещает? Во-вторых "им можно".


97mik

можно, но почему нельзя в условии? - ведь заведомо бесконечный циклможет лучше так
if q > -1 
  then while q < 10 do
            inc(q);
;


97mik

Просто у меня здоровенный цикл и не про q, а это я так, привёл пример.


97mik

97mik, задачу вы описали своеобразно, не особенно понятно что вам надо. Как понял - то есть при затупе алгоритма прервать цикл ? Тогда глобальная переменная, при true - exit На кнопку например СТОП - переменная = true Хотелось бы побольше подробностей


97mik

Все три repeat и while и for цикла отработают до 10, проверил в мемо-поле. Break; хорошо работает в цикле for, в других циклах я даже незнаю куда его вставить.
procedure TForm1.Button1Click(Sender: TObject);
begin
  a := 0; //первоначальное значение
  repeat
    a := a + 1;
    Memo1.Lines.Add(IntToStr(a));
  until a = 10; //условие,когда закончить цикл выполнится хоть 1 раз
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  a := 0; //первоначальное значение
  while a <> 10 do
  begin
    a := a + 1;
    Memo1.Lines.Add(IntToStr(a));
  end;
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  for a := 0 to 100 do
  begin
   Memo1.Lines.Add(IntToStr(a));
   if a = 10 then
   Break; //прерывание
  end;
end;