forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Индексирующая переменная цикла (http://forum.boolean.name/showthread.php?t=11986)

IgorOK 21.02.2010 23:11

Индексирующая переменная цикла
 
Возникла проблема. После выполнения нижеприведённого кода у меня перевернулось мировоззрение...

For i=1 To 3
Next

Print i

Индексирующая переменная почему-то после выхода из цикла увеличивается ещё на единицу. Собсно вопрос: Так было всегда? Что-то я этого не припомню. В связи с этим возникает проблема с индексами массива :"(

Толи я - дурак, толи лыжи не едут...

Android 21.02.2010 23:14

Ответ: Индексирующая переменная цикла
 
Што?
Может нужно так?

For i=1 To 3
Print i
Next

H@NON 21.02.2010 23:19

Ответ: Индексирующая переменная цикла
 
цикл действует так :
1)переменная приравнивается к индексу
2)Проверка выходит ли значение переменной за границы диапозона
3)Если нет, то выполняется действие, индекс увеличивается на шаг.

То есть когда переменная равняется 4м, она не проходит по условию цикла и выходит из него. Так что если переменная юзается только внутри цикла, то гуд

IgorOK 21.02.2010 23:30

Ответ: Индексирующая переменная цикла
 
Спасибо.

Брр... Три года сижу на блице и такого не замечал...

jimon 21.02.2010 23:51

Ответ: Индексирующая переменная цикла
 
во всех языках программирования взяли за основу принцип что значение переменной - итератора цикла после выхода из цикла не определенно и не стоит на него рассчитывать

ffinder 22.02.2010 00:56

Ответ: Индексирующая переменная цикла
 
Цитата:

Сообщение от jimon (Сообщение 138667)
переменной - итератора цикла

это индексатор, а не итератор!

impersonalis 22.02.2010 01:04

Ответ: Индексирующая переменная цикла
 
Цитата:

Сообщение от ffinder (Сообщение 138680)
это индексатор, а не итератор!

кэп помоги!
Цитата:

Сообщение от jimon
и не стоит на него рассчитывать

х3-х3 очень удобно бывает: читаешь из некоего потока в строку (массив char-ов) н байт (используя некую индексную перменную, инкерментируемую на каждой итерации), после выхода из цикла "закрываешь" строку нуль-байтом на н+1ой (т.е. берём значение итератора) позиции

jimon 22.02.2010 01:31

Ответ: Индексирующая переменная цикла
 
ffinder
ну если ты его будешь использовать для обращение по индексу - то индексатор, но Print i это не обращение по индексу, скорее правильнее называть просто счётчиком цикла, потому что такой термин общеприменим

impersonalis 22.02.2010 01:37

Ответ: Индексирующая переменная цикла
 
импэ реквистирует трактовку термина от ffinder (яндекс выдаёт следующее):
Цитата:

Индексатор позволяет работать с классом или структурой таким образом, как если бы это были массивы. Индексация класса выполняется по индексу, указываемому как параметр. Иногда классы, используемые как индексаторы, называют классами-индексаторами.
т.е. совсем не переменная, инкремент/декремент которой (вместе с условием выхода за границу) является инвариантом цикла.

impersonalis 22.02.2010 23:55

Ответ: Индексирующая переменная цикла
 
ffinder ау! Отзовись!

IgorOK 23.02.2010 00:20

Ответ: Индексирующая переменная цикла
 
Ещё раз спасибо за подробное разъяснение.

:ok:

impersonalis 25.02.2010 01:53

Ответ: Индексирующая переменная цикла
 

ffail

IGR 25.02.2010 15:51

Ответ: Индексирующая переменная цикла
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 2000 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


Часовой пояс GMT +4, время: 06:53.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot