История изменений
Исправление Deleted, (текущая версия) :
Давайте сперва посмотрим на эквивалентную конструкцию в C:
// SizeOf(i)=2 for i:=0 to $FFFF do {...};
А на что тут смотреть? Давайте лучше посмотрим на эквивалентную конструкцию в Паскале:
for (some_type_t * item = first_item; item; item = item->next)
{
}
Или на эквивалентную конструкцию 2:
for (char * s = str; *s; s++)
{
}
Или на эквивалентную конструкцию 3:
for (size_t i = 0; initialization_list[i].somedata; i++)
{
}
И неудивительно, это разные циклы, хоть и на одном ключевом слове for. Си-шный for — обычный while-переросток, местами действительно удобный.
Это вам в Оберон, там FOR вообще выпилили. Отвечу словами Напильника:
Математики уверяют что этот оператор не нужный, но «забывают» уточнить, что собирать в бутылке рабочую модель парусника не очень удобно, хотя и возможно.
Исходная версия Deleted, :
Давайте сперва посмотрим на эквивалентную конструкцию в C:
// SizeOf(i)=2 for i:=0 to $FFFF do {...};
И на что тут смотреть? Давайте лучше посмотрим на эквивалентную конструкцию в Паскале:
for (some_type_t * item = first_item; item; item = item->next)
{
}
Или на эквивалентную конструкцию 2:
for (char * s = str; *s; s++)
{
}
Или на эквивалентную конструкцию 3:
for (size_t i = 0; initialization_list[i].somedata; i++)
{
}
И неудивительно, это разные циклы, хоть и на одном ключевом слове for. Си-шный for — обычный while-переросток, местами действительно удобный.
Это вам в Оберон, там FOR вообще выпилили. Отвечу словами Напильника:
Математики уверяют что этот оператор не нужный, но «забывают» уточнить, что собирать в бутылке рабочую модель парусника не очень удобно, хотя и возможно.