![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.04.2011
Сообщений: 62
|
![]()
Не могу понять как работает цикл в цикле
на пример repeat begin lalalala if что-то1<>100 then begin lalalala2 что-то1:=что-то1+1; end end until что-то2<чего-то Выполняется это так? Заходим в цикл repeat делаем lalalala затем входим в условие if делаем lalalala2 затем будет выполняться if пока что-то1 не станет равным 100 и только потом перейдет на until так? Вот наглядный пример с которым мучаюсь, у меня есть таблица в ней в ячейке(8,1) есть текст далее в каком-то, неизвестном, кол-ве ячеек вниз пусто и потом опять в одной ячейке что-то есть надо объединить ячейку 8,1 со всеми пустыми ячейками,вниз, до след заполненной. И то же самое проделать с следующей. Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
С каких пор иф оператор цикла? иф выполняется на каждой итерации цикла 1 раз.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 19.04.2011
Сообщений: 62
|
![]()
Ну хорошо if выполнился 1 раз но когда его прошли что-то2 все равно меньше чего-то и тогда вернется к repeat и потом опять if выполниться ведь так?
Но в любом случае если в while вложен for как работать будет выполнит while затем все варианты for а потом вернется к while? что то я запутался Последний раз редактировалось Stilet; 19.09.2012 в 21:25. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
На каждой итерации цикла while..do будет выполняться цикл for .. do. В общем, так, как Вы и сказали
![]() Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 19.04.2011
Сообщений: 62
|
![]()
Но почему тогда в моем коде объединяется только 2 ячейки, вот как я понимаю работу этого кода:
z это кол-во всех строк-1 dir это переменная типа string в неё записывается значение ячейки далее захожу в цикл repeat если ячейка не пустая то объединяем ячейки 8,1 и 9,1 далее dir присваиваем значение ячейки 9,1 и значение nrow становиться 10 а так как 10<чем число строк то проходим по циклу ещё раз но только dir уже это ячейка 9,1 и она объединена с 8,1 соответственно она не пустая и тогда так как nrow уже 10 должны объединиться 10,1 и 11,1 но этого не происходит |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
while и repeat циклы выполняют код внутри себя пока не выполнится их условие.
Чтобы выскочить из цикла нужно выполнить break, чтобы прыгнуть на след. виток - continue. Больше инфы можно найти по ссылке "Основы delphi" |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Начнем разбор кода по-порядку:
Код:
Код:
Теперь по конкретной проблеме: Код:
Код:
Цитата:
![]() Ну и если Вы поменяете repeat и dir:=... местами так, как я сказал выше, то отпадет необходимость в этой строчке: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 19.04.2011
Сообщений: 62
|
![]()
Ну да, забыл что под комментарием вот переделал
Код:
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]() Цитата:
И, кстати, тот код, который у Вас приведен сейчас, объединяет ячейки попарно - так и надо? UPD. Заглянул в свою старую программулину - точно Excel.Visible:=true; ![]()
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 19.04.2011
Сообщений: 62
|
![]()
Есть((( я скинул отрывок проги
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл в цикле | EkleP | PHP | 1 | 12.02.2012 01:29 |
Цикл в цикле | Зод | Помощь студентам | 1 | 19.11.2011 04:40 |
цикл в цикле (Си++) | ConChita | Помощь студентам | 2 | 11.03.2010 09:13 |
Цикл в цикле... | Davlet M | Помощь студентам | 6 | 25.01.2010 01:42 |