Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.04 c
15-1162605071
naxellar
2006-11-04 04:51
2006.11.26
Блокировка клавиатуры и мыши в WinXP


2-1162916772
Серый
2006-11-07 19:26
2006.11.26
Блокировка


2-1162908622
Stanislav
2006-11-07 17:10
2006.11.26
Правильное отключение (AdoConnection)


3-1159197350
Silver...
2006-09-25 19:15
2006.11.26
SQL - ... Field1, Field2, Field2 NOT IN (...)


8-1144514215
LuiCifer
2006-04-08 20:36
2006.11.26
Прозрачный png. Как сделать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский