Что мне не хватает в императивных языках

Очень не люблю серию вложенных условий в друг друга:

if(условие1)
{
	if(условие2)
	{
		if(условие3)
		{
			if(условие4) ...
		{
	}
}

Получаем быстрорастущую пирамиду в бок в которой уже сложно отследить, где начинается один блок, а где второй. Моя мечта, чтобы можно было писать так:

if(условие1)
{
	if(!условие2) breakif;
	if(!условие3) breakif;
	if(!условие4) breakif;
	...
}
Опубликовано в Дизайн. Комментарии (4) »

4 коммент. на “Что мне не хватает в императивных языках”

  1. lascamo пишет:

    ты где столько их нарыл? :mrgreen:

  2. Serge пишет:

    Как насчет такого кода

    bool some_function()
    {
    if(conditionOneNotTrue)
    return false;
    DoSomeStuff();
    if(conditionTwoNotTrue)
    return false;
    DoAnotherStuff();
    if(conditionThreeNotTrue)
    return false;
    .......
    return true;
    }

    В Си такой код не всегда удобен если есть необходимость освобождения ресурсов, но в С++ RAII решает эту проблему за тебя.

  3. Евгений пишет:

    Я использую. Но это как-то ненаглядно для меня.
    do {
    if(!conditionOne) break;
    if(!conditionTwo) break;
    if(!conditionThree) break;

    } while(false);

  4. Kozar пишет:

    Побольше б таких штук


Ответить