![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
for i := ...
yyy111 © (2006-11-09 11:43:00)Есть цикл:
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 ...
_RusLAN (2006-11-09 15:47:00) [1]> Единственный выход такой?
> 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 ...
RWolf (2006-11-09 12:13:00) [2]Это верно, согласен.
Kolan (2006-11-09 12:11:00) [3]Замени это:
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
Anatoly Podgoretsky (2006-11-09 12:09:00) [4]> yyy111 (09.11.2006 11:43:00) [0]
Ну и чего тебе тогда не нравится, соответствует твоей задаче и твоему (а твоему ли) зверскому ограничению, ничем не обоснованному.
RWolf (2006-11-09 12:06:00) [5]а что else? операторов в тело цикла оно не прибавит. Условие сработает все равно только для одного значения i.
Kolan (2006-11-09 12:00:00) [6]> [7] RWolf © (09.11.06 11:55)
>
> > судя по коду это неизвестно...
>
> do без begin именно это и обозначает.
А else ?
RWolf (2006-11-09 11:55:00) [7]
> судя по коду это неизвестно...
do без begin именно это и обозначает.
Kolan (2006-11-09 11:54:00) [8]> то, судя по коду, кроме if, в цикле ничего нет
судя по коду это неизвестно...
RWolf (2006-11-09 11:51:00) [9]Что до хорошего решения, то, судя по коду, кроме if, в цикле ничего нет. Если так - цикл ни к чему.
if MyTypeLength(myType)>0 then ...
Kolan (2006-11-09 11:49:00) [10]> Единственный выход такой?
Мож и не единственный, но нормальный...
yyy111 (2006-11-09 11:48:00) [11]Нет, всё ок нормальный вариант, просто спросил может есть более хорошее решение. Спасибо!
Dmitrij_K (2006-11-09 11:46:00) [12]
Cnt := MyTypeLength(myType)-1;
for i := 0 to Cnt do
if i = cnt then ...
чем плох?
RWolf (2006-11-09 11:46:00) [13]а чем такой вариант не устраивает?