Re: Chained Control Flow Statements: break [, break]... [,co
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.01.25 13:56
Оценка: -1
Здравствуйте, Caracrist, Вы писали:

C>Концепция заключается в том, чтобы разрешить использование нескольких операторов `break` и опционального оператора `continue` в одной строке, как показано ниже:


Освой концевую рекурсию и проблем с циклами у тебя не будет в любом языке где поддерживается её оптимизация (или если количество переборов циклах не велико и не может переполнить стек).
if (cond1)
    outerLoop();

// код выполнен после "break, break" или если !cond1
return;

void outerLoop()
{
   if (innerLoop() && cond1)
       outerLoop(); // концевая рекурсия внешнего цикла (возврат сюда из: break, continue)
   
    bool innerLoop()
    {
        if (cond3)
            return false; // выход из внутреннего и внешнего цикла
        else if (cond4)
            return true; // выход из внутреннего цикла и продолжение во внешнем цикле
        
        if (cond2)
            return innerLoop(cond2); // концевая рекурсия вложенного цикла

        // этот код выполняется только если !cond2
        return true;
    }
}
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 14.01.2025 15:07 VladD2 . Предыдущая версия . Еще …
Отредактировано 14.01.2025 14:00 VladD2 . Предыдущая версия .
Отредактировано 14.01.2025 13:57 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.