ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
53317 Топик полностью
ReAl (09.03.2006 12:51, просмотров: 1) ответил bialix на мои ответы
"Да, и sed, и awk, и python написаны на С - но только для того, чтобы больше не писать на С" - не помню чья давняя фраза :-) Но тем не менее - замена вложенных циклов на один возможна далеко не всегда (возможно, я просто неправильно воспринял фразу "от цикла for можно уйти к циклу while и там будет гораздо проще контролировать поведение программы" - не увидев "области определения" решил, что она широкая :-) ) И всё-таки
    for(y = min_y; y < max_y; ++y)
        for(x = min_x; x < max_x; ++x)
            if( cond1) goto done;
 done: ;
заменять на
    y = min_y;
    x = min_x;
    while( y <= min_y) {
        if( cond1) break;
        if( ++x <= max_x) continue;
        x = min_x;
        ++y;
    }
хоть и можно, но (на мой взгляд, естественно), это - уродство, маскирующее суть алгоритма ради непонятно чего. Т.е. я не считаю, что это позволяет "гораздо проще контролировать поведение программы". И, честно говоря, не уверен, что break с указанием числа уровней, из которых нужно вывалиться - лучше. Не пробовал, не знаю. В сущности - все языки программирования - "сахар" поверх мнемокода :-)