Язык программирования C++. Вводный курс


Инструкция switch - часть 3


/p>

}

Если значение ch

равно i, выполнение начинается с инструкции после case 'i' и iCnt

возрастет на 1. Однако следующие ниже инструкции, ++oCnt и ++uCnt, также выполняются, увеличивая значения и этих переменных. Если же переменная ch

равна a, изменятся все пять счетчиков.

Программист должен явно дать указание компьютеру прервать последовательное выполнение инструкций в определенном месте switch, вставив break. В абсолютном большинстве случаев за каждой метке case

должен следовать соответствующий break.

break

прерывает выполнение switch и передает управление инструкции, следующей за закрывающей фигурной скобкой, – в данном случае производится вывод. Вот как это должно выглядеть:

switch ( ch ) {

    case 'a':

        ++aCnt;

        break;

    case 'e':

        ++eCnt;

        break;

    case 'i':

        ++iCnt;

        break;

    case 'o':

        ++oCnt;

        break;

    case 'u':

        ++uCnt;

        break;

}

Если почему-либо нужно, чтобы одна из секций не заканчивалась инструкцией break, то желательно написать в этом месте разумный комментарий. Программа создается не только для машин, но и для людей, и необходимо сделать ее как можно более понятной для читателя. Программист, изучающий чужой текст, не должен

сомневаться, было ли нестандартное использование языка намеренным или ошибочным.

При каком условии программист может отказаться от инструкции break и позволить программе провалиться сквозь несколько меток case? Одним из таких случаев является необходимость выполнить одни и те же действия для двух или более меток. Это может понадобиться потому, что с case

всегда связано только одно значение. Предположим, мы не хотим подсчитывать, сколько раз встретилась каждая гласная в отдельности, нас интересует только суммарное количество всех встретившихся гласных. Это можно сделать так:

int vowelCnt = 0;

// ...

switch ( ch )

{

    // любой из символов a,e,1,o,u

    // увеличит значение vowelCnt

    case 'a':

    case 'e':

    case 'i':

    case 'o':

    case 'u':

        ++vowe1Cnt;

        break;

<


Начало  Назад  Вперед



Книжный магазин