domingo, 14 de junho de 2015

C/C++: Use rotulos, vá para onde quiser. Aula 18

Pense bem antes de usar rótulos na linguagem C, como vemos no terceiro exemplo, rótulos mal inseridos fazem o programa sair de todos os SWITCHs e repetições e voltar para o meu do meu programa. Mas bem utilizado você pode sair de vários loops ou voltar para o inicio do programa.

Código fonte:
#include <stdio.h>
#include <conio.h>

int main() {
    int digite, caso;
   
    printf("Digite 1 ou 3: ");
    scanf("%d", &caso);
   
    switch (caso) {
        case 1:
   
    while(digite != 2 ) {
        printf("\nDigite 1 ou 2: ");
        scanf("%d", &digite);
    if ((digite > 2)||(digite < 1)) {
        printf("numero invalido.");
        goto rotulo1;
    }
    switch (digite) {
        case 1:
        printf("continue.");
        continue;
        case 2:
        rotulo2: printf("break");
        break;
    }
    printf("\n\n fim do switch.");
    }
    case 3:
    printf("Fim do primeiro switch.");
    goto rotulo2;
    break;
}
rotulo1:
    printf("\n\n fim do while.");

getch();
return(0);
}

Vídeo:

Nenhum comentário:

Postar um comentário