Estrutura de controlo consiste numa seleco de vrios casos que
designada em c++ por switch-case. A sua sintaxe : switch (selector) { case <valor 1> : <bloco de instrues 1> ; [break]; case <valor 2> : <bloco de instrues 2> ; [break];
[default : <bloco de instrues>; ]
} A estrutura inicia-se com a palavra-chave switch, seguida de um selector, ou seja, uma varivel ou expresso que, podendo assumir diferentes valores consoante a execuo do programa, vai funcionar aqui como selector. Isto quer dizer que o valor assumido por esta expresso ou varivel determina o bloco de instrues a selecionar para ser executado. Repare-se que, aps o inicio ou cabealho com o switch (selector), todo o restante desta estrutura deve vir includo dentro das chavetas {}. Dentro dessas chavetas so inseridos os virios casos de valores assumidos pela varivel ou expresso selector. Cada um destes casos inicia-se com a palavra case, seguida de um valor que pode ser constante directa (como, por exemplo 1 ou 2,etc.) ou uma expresso com valor conhecido no momento da avaliao. Aps cada clusula comeada com case e o respectivo valor, surge um sinal de dois pontos (:) e um bloco de instrues, o qual dever ser executado, no caso de o valor do selector corresponder ao valor indicado nesta clusula. Repare-se agora tambm no facto de, em C++, ser habitual inserir-se, no final de cada bloco de instrues de cada clusula case, uma instruobreak (que opcional). Embora estas instrues break sejam opcionais, costume inseri-las para quebrar (break) a sequncia de instrues da estrutura case nesse ponto, pois, se no o fizermos, o programa continuar a executar as instrues subsequentes da estrutura case.
No final dos vrios casos (case) de uma estrutura switch case,
podemos incluir, opcionalmente, uma clusula default, seguida de dois pontos e um bloco de instrues para esta clusula. Este bloco de instrues destina se a ser executado apenas no caso de o valor do selector no corresponder a nenhum dos casos anteriormente indicados.