LINUX.ORG.RU

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

Исправление wandrien, (текущая версия) :

Смысл следующий.

В Си есть такая достаточно частая идиома:

do {
   бла бла;
   if (что-то) break;
   бла бла;
   if (что-то) break;
   бла бла;
} while (0);

Здесь «цикл» как раз используется не по назначению цикла, а как скоуп для выхода по break из него.

В моём проекте этот юзкейс будет легализован в конструкцию языка, позволяющую напрямую выходить из блока, не только из цикла.

Синтаксис управляющих конструкций строится в соответствии с идеей, что он должен наглядно говорить о том, что происходит. Поэтому все виды разных управляющих конструкций выглядят по-разному, а не просто состоят из () и {}.

Разумеется, такую вещь, как «цикл, который не является циклом», я тоже не мог обойти вниманием в этом ракурсе. Поэтому такой не_цикл и не выглядит как цикл, а вводится отдельным ключевым словом.

Исходная версия wandrien, :

Смысл следующий.

В Си есть такая достаточно частая идиома:

do {
   бла бла;
   if (что-то) break;
   бла бла;
   if (что-то) break;
   бла бла;
} while (0);

Здесь «цикл» как раз используется не по назначению цикла, а как скоуп для выхода по break из него.

В моём проекте этот юзкейс будет легализован в конструкцию языка, позволяющую напрямую выходить из блока, не только из цикла.

Синтаксис управляющих конструкций строится в соответствии с идеей, что он должен наглядно говорить о том, что происходит. Поэтому все виды разных управляющих конструкций выглядят по-разному, а не просто состоят из () и {}.

Разумеется, такую вещь, как «цикл, который не является циклом», я тоже не мог обойти вниманием в этом ракурсе. Поэтому такое не_цикл и не выглядит как цикл, а вводится отдельным ключевым словом.