Техническое название для заявления переключателя без перерывов - PullRequest
1 голос
/ 12 октября 2010

Кто-нибудь знает «техническое имя» оператора switch без перерывов?

Я просмотрел несколько учебников и довольно долго искал в Интернете, но безрезультатно.

Ответы [ 3 ]

2 голосов
/ 12 октября 2010

Оператор switch без разрывов (и без цикла, так что это не устройство Даффа), я бы просто назвал таблицу переходов .

Не один из инструментов, обычно используемых для структурного программирования, это точно.

0 голосов
/ 12 октября 2010

Когда выполнение продолжается от одного предложения Case к следующему, оно называется "проваливающимся".

switch (i) {
    case 1:
        // do something

    case 2:
        // do something else
        break;

    case 3:
        // do another thing
}

Исполнение будет «проваливаться» из случая 1 в дело, но не из дела 2 в дело 3. Это то, что вы спрашиваете?

0 голосов
/ 12 октября 2010

провалиться?

Или вы говорите о конкретном операторе switch без разрывов, который называется Устройство Даффа ?

send(to, from, count)
register short *to, *from;
register count;
{
    register n=(count+7)/8;
    switch(count%8){
        case 0: do{ *to = *from++;
        case 7:     *to = *from++;
        case 6:     *to = *from++;
        case 5:     *to = *from++;
        case 4:     *to = *from++;
        case 3:     *to = *from++;
        case 2:     *to = *from++;
        case 1:     *to = *from++;
        }while(--n>0);
    }
}
...