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

Вниз

Логика работы цикла   Найти похожие ветки 

 
learner ©   (2006-07-08 16:59) [0]

Почему так происходит ?
MaxIndex: integer;
MaxIndex:= -1;
for i:=0 to MaxIndex do ShowMessage(IntToStr(i));

И цикл начинает выдавать сообщения : 1, 2, 3, и т. д.


 
Шпиён   (2006-07-08 17:11) [1]

А какого типа переменная i?
Если i - беззнаковое (word, byte, dword и т.п.) - то так и получится, потому что MaxIndex будет неявно приведен к типу i -)


 
begin...end ©   (2006-07-08 17:12) [2]

> learner ©   (08.07.06 16:59) [0]

> Почему так происходит ?

Скорее всего, потому, что переменная i объявлена как БЕЗзнаковое целое. Дело здесь вот в чём. Четырёхбайтное (integer) знаковое число "-1" имеет то же самое внутреннее представление ($FFFFFFFF), что и четырёхбайтное безнаковое число "4294967295". И если i -- это именно четырёхбайтное беззнаковое целое, то компилятор устанавливает верхнюю границу цикла равную именно 4294967295. Соответственно этому цикл и прокручивается.


 
begin...end ©   (2006-07-08 17:14) [3]

Если же i объявлено как одно- или двухбайтное беззнаковое целое, то цикл будет прокручиваться соответственно до 255 и до 65535.


 
Шпиён   (2006-07-08 17:15) [4]


> begin...end ©   (08.07.06 17:12) [2]

Хочу лишь добавить, что верхняя граница цикла будет зависеть от размерности  типа i:
byte - 255
word - 65535
dword, Longword, Cardinal - 4294967295


 
Шпиён   (2006-07-08 17:15) [5]


> begin...end ©   (08.07.06 17:14) [3]

Синхронное плавание -))))))))))


 
learner ©   (2006-07-08 18:50) [6]

Спасибо.



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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
2-1152621016
infom
2006-07-11 16:30
2006.07.30
Сократить данную конструкцию.


2-1152397347
Asail
2006-07-09 02:22
2006.07.30
Проблема с полем в классе


15-1150692824
Иксик_без_пароля
2006-06-19 08:53
2006.07.30
Сколько стоит доллар в обменниках Москвы?


1-1150060668
TFont
2006-06-12 01:17
2006.07.30
Как получить векторы из векторного шрифта?


15-1151384777
Ega23
2006-06-27 09:06
2006.07.30
С Днём рождения! 27 июня