Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

for i := ...   Найти похожие ветки 

 
yyy111   (2006-11-09 11:43) [0]

Есть цикл:

for i := 0 to MyTypeLength(myType) - 1 do

Возможно ли внутри цикла узнать что это последний элемент. При условии, что внутри цикла вызвать MyTypeLength(myType) повторно нельзя.

Единственный выход такой?
 Cnt := MyTypeLength(myType);
 for i := 0 to  Cnt - 1 do
   if i = cnt - 1 then ...  


 
Dmitrij_K   (2006-11-09 11:46) [1]

 Cnt := MyTypeLength(myType)-1;
for i := 0 to  Cnt do
  if i = cnt  then ...  

чем плох?


 
RWolf ©   (2006-11-09 11:46) [2]

а чем такой вариант не устраивает?


 
yyy111   (2006-11-09 11:48) [3]

Нет, всё ок нормальный вариант, просто спросил может есть более хорошее решение. Спасибо!


 
Kolan ©   (2006-11-09 11:49) [4]

> Единственный выход такой?

Мож и не единственный, но нормальный...


 
RWolf ©   (2006-11-09 11:51) [5]

Что до хорошего решения, то, судя по коду, кроме if, в цикле ничего нет. Если так - цикл ни к чему.
if MyTypeLength(myType)>0 then ...


 
Kolan ©   (2006-11-09 11:54) [6]

> то, судя по коду, кроме if, в цикле ничего нет

судя по коду это неизвестно...


 
RWolf ©   (2006-11-09 11:55) [7]


> судя по коду это неизвестно...

do без begin именно это и обозначает.


 
Kolan ©   (2006-11-09 12:00) [8]

> [7] RWolf ©   (09.11.06 11:55)
>
> > судя по коду это неизвестно...
>
> do без begin именно это и обозначает.

А else ?


 
RWolf ©   (2006-11-09 12:06) [9]

а что else? операторов в тело цикла оно не прибавит. Условие сработает все равно только для одного значения i.


 
Anatoly Podgoretsky ©   (2006-11-09 12:09) [10]

> yyy111  (09.11.2006 11:43:00)  [0]

Ну и чего тебе тогда не нравится, соответствует твоей задаче и твоему (а твоему ли) зверскому ограничению, ничем не обоснованному.


 
Kolan ©   (2006-11-09 12:11) [11]

Замени это:
Cnt := MyTypeLength(myType);
for i := 0 to  Cnt - 1 do
  if i = cnt - 1 then
     ShowMessage("End")
   else
     ShowMessage("Still working"+IntToStr(I));  


C помощью

if MyTypeLength(myType)>0 then


 
RWolf ©   (2006-11-09 12:13) [12]

Это верно, согласен.


 
_RusLAN ©   (2006-11-09 15:47) [13]

> Единственный выход такой?
> Cnt := MyTypeLength(myType);
> for i := 0 to  Cnt - 1 do
>   if i = cnt - 1 then ...


еще так можно:
for i := MyTypeLength(myType) - 1 dowto 0 do
  if i = 0 then ...



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
1-1160978357
id
2006-10-16 09:59
2006.11.26
XML as Registry


3-1159301119
Olaf
2006-09-27 00:05
2006.11.26
Помогите составить SQL запрос и сведение его результатов.


9-1138783225
Nic
2006-02-01 11:40
2006.11.26
Выбор компилятора Delphi при создании игры


15-1162825312
daser
2006-11-06 18:01
2006.11.26
Каковы минимальные требования для компа, чтоб работать


2-1163108020
koha
2006-11-10 00:33
2006.11.26
Как программно создать ярлык другой программы?