| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Встроенный счётчик есть? |
| Автор: Rohoss 17.3.2009, 22:25 | ||
Есть ли в Delphi какая-то переменная, которую можно использовать вместо счётчика цикла?
В таких случаях можно было бы и не писать var. Может в VCL завалялась какая-то переменная, которую можно использовать для данных целей? |
| Автор: bems 17.3.2009, 22:50 |
| даже если бы где-то в другом модуле и была ненужная переменная, использовать ее не получилось бы. Счетчик цикла должен быть объявлен там же, где и цикл |
| Автор: Данкинг 17.3.2009, 23:39 |
| |
| Автор: former 18.3.2009, 00:04 | ||
Да ну! Ну а если эта переменная глобальная, объявлена в модуле главной формы (программы)? А из VCL нет. |
| Автор: kami 18.3.2009, 00:14 |
Ну да. bems прав. Delphi по этому поводу говорит, что for loop-control variable must be a simple local variable. А речь идет именно о переменных, объявленных в других модулях (если конкретнее - в исходниках VCL), которые планируется задействовать в своем коде в качестве счетчиков цикла. |
| Автор: former 18.3.2009, 00:15 |
это точно. пробовал с Tag. Ругается. |
| Автор: Rohoss 18.3.2009, 00:37 |
В С – подобных языках это и не требуется, так как переменная объявляется прямо на месте |
| Автор: Данкинг 18.3.2009, 00:39 | ||
Но всё равно же объявление переменной присутствует, пусть и не такое, как в Дельфи ( for (i = 0;.....). |
| Автор: bems 18.3.2009, 01:14 |
| Да да! |
| Автор: Matematik 18.3.2009, 14:41 | ||
В 2009 появилась конструкция for in
|
| Автор: THandle 18.3.2009, 14:57 |
Небольшая поправка: цикл for...in...do появился еще в Delphi 2005. |
| Автор: Gwire 18.3.2009, 15:10 | ||||||
Да и в зависимости от того какую цель приследовать.
Но стоит ли так "ПАРИТЬ" себе голову? По моему этот вид лучше и проще:
|
| Автор: Beltar 20.3.2009, 12:08 | ||||||
В Аде ЕМНИП переменная цикла автоматом становится Integer.
Если уж заговорили об экономии двух-трех символов, то позволю себе небольшой оффтопик. В Си цикл for, я за таковой вообще не считаю. Т. к. for(i=0;i<n;i++) совершенно аналогично
В обоих случаях описано ровно 3 операции. Укажите хоть одно отличие от while? На кой фиг это дебильное i++ вообще нужно, если цикл for в 99,9% случаев имеет инкремент 1? |
| Автор: Dmi3ev 22.3.2009, 13:02 | ||||||||||||||
С++ с Delphi сравнивать?
1) переменная локальная, вне цикла ее нет, это довольно удобно, даже не собираюсь объяснять чем... 2) начальное значение, условие цикла, а также шаг (все параметры цикла) находятся на одной строке (удобочитабельно) 3) при этом есть возможность запускать цикл вот такого плана
что с while уже будет выглядеть более запутано на мой взгляд...
а на кой фиг Inc(i); ? (не нравится сделай свою функцию Inc() или пиши i=i+1, кто не дает) а если серьезно то "++" много возможностей и это удобная штука, а если не умеешь ей пользоваться, то это не значит, что она "дебильная"... 4)
у кого как...
а это чем тебе не цикл? На самом деле Delphi и С++ сравнивать - глупое занятие, поэтому продолжать не буду... |