Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Цикл в цикле

Автор: BananaMan 4.06.2006 17:44

k:=0;
for i:=1 to m do
for j:=1 to n do
if (StringGrid1.Cells[j,i]='')or(StringGrid2.Cells[j,i]='') then
begin
inc(k);
break;
end;
if k<>0 then ShowMessage('матрицы имеют незаполненные ячейки')


вопрос:
если у меня условие выполняется, как прервать оба цикла сразу?

Автор: мисс_граффити 4.06.2006 22:16

а не проще ли взять цикл другого типа? while или until....
это, конечно, мое личное мнение, но пользоваться брейками без серьезных на то причин не люблю.

Автор: Noof 5.06.2006 8:33

Цитата(BananaMan @ 4.06.2006 13:44) *

вопрос:
если у меня условие выполняется, как прервать оба цикла сразу?


вставить проверку если переменная bool = true тогда брейк здес... и "там". нет?

Автор: klem4 5.06.2006 12:26

Цитата
если у меня условие выполняется, как прервать оба цикла сразу?


for i := 1 to n do begin
for j := 1 to m do
if lalala[i,j] then break;
if lalala[i,j] then break;
end;


или

i := 1;
while (i <= n) do begin
j := 1;
while (j <= m) do begin
if lalala[i,j] then break;
inc(j);
end;
if j <= m then break else inc(i);
end;


или

i := 1;
while (i <= n) do begin
j := 1;
while (j <= m) and not(lalala[i,j]) do inc(j);
if j <= m then break else inc(i);
end;

Автор: hardcase_offline 5.06.2006 17:48

Цитата(BananaMan @ 4.06.2006 13:44)
вопрос:
если у меня условие выполняется, как прервать оба цикла сразу?


type
Interruption = class(TObject)
end;

try
for i:=1 to m do
for j:=1 to n do begin
if Condition then raise Interruction.Create;
end;
except
on Interruption do ShowMessage('Прерывание цикла')
end;

Автор: мисс_граффити 5.06.2006 17:56

ну все... началось.
hardcase_offline, сейчас будешь объяснять человеку, не знающему, как заполнить массив из стринггрида, что такое класс.......

Автор: BananaMan 6.06.2006 18:22

:-| так
попрошу без сарказма
и что такое class?))))

Автор: мисс_граффити 6.06.2006 19:41

объектно-ориентированное программирование заинтересовало?...

Автор: BananaMan 6.06.2006 20:10

вопрос на вопрос?

Автор: volvo 6.06.2006 20:16

Начнем флеймить?
BananaMan, у тебя на клавиатуре F1 заело?