LINUX.ORG.RU

История изменений

Исправление 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 вообще выпилили. Отвечу словами Напильника:

Математики уверяют что этот оператор не нужный, но «забывают» уточнить, что собирать в бутылке рабочую модель парусника не очень удобно, хотя и возможно.