.
Microsoft visual c++ 2008. Урок 14. Использование конструкции switch...case.
Автор megabax   
20.01.2012 г.
New Page 1

Microsoft visual c++ 2008. Урок 14. Использование конструкции switch...case. 

При большой многовариантном выборе использование конструкции if ... else не  всегда удобно. Поэтому придумали конструкцию switch - многовариантный выбор. В общем случае синтаксис таков:

switch (<Условие>) {

    case <Значение 1>:

        <Операторы>

       [break]

    case <Значение 2>:

        <Операторы>

       [break]

...

    default:

         <Операторы>

        [break]

}

А вот пример использования данной конструкции:

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#define eof -1   //Ctrl+Z

#define m 5 //количество счетчиков в операторе switch

 

 

//ищет в массиве v[n] элемент x

int countSimb(char c, int v[], char s[]) {

    switch(c) {

        case 'a':

            v[0]++;

            break;

        case 'b':

            v[1]++;

            break;

        case 'c':

            v[2]++;

            break;

        case 'd':

            v[3]++;

            break;

        default:

            v[4]++;

            break;

    }

    return(0);

}

 

 

int _tmain(int argc, _TCHAR* argv[])

{

    int c,i,a[m];

    char s[m];

    s[0]='a';

    s[1]='b';

    s[2]='c';

    s[3]='d';

    s[4]='!';

    for(i=0;i<m;i++) a[i]=0;

    printf("Enter characters, Ctrl+z - break: ");

    i=0;

    while((c=getchar())!=eof) {

        countSimb(c,a,s);

        i++;

    }

    for(i=0;i<m;i++) {

        printf("Key=%c count =%d\n",s[i],a[i]);

    }

    printf("Press any key to continue");

    _getch();  

    return 0;

}

А вот протокол работы данной программы:

Microsoft visual c++ 2008. Урок 14 Использование конструкции switch...case. 

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


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями   программного продукта "Microsoft Visual C++ Express Edition", авторское право на который принадлежит корпорации Microsoft.. 


 

Последнее обновление ( 28.09.2013 г. )