Главная страница
    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.045 c
2-1162987359
Димыч
2006-11-08 15:02
2006.11.26
Поверх всех окон


15-1162969180
Lexer
2006-11-08 09:59
2006.11.26
Распространение групповой политики на весь домен


15-1162931282
Ice
2006-11-07 23:28
2006.11.26
Помогите потестить программу.


15-1162634832
DprYg
2006-11-04 13:07
2006.11.26
Профилировщики


15-1162469761
DimonS
2006-11-02 15:16
2006.11.26
Совместимость D6 & D7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский