Comando goto. Escreva um programa que use comandos
goto para simular uma estrutura de laços aninhados
que imprime um quadrado de asteriscos, como no
exemplo a seguir:
O programa deverá usar apenas as três instruções printf
a seguir:
printf( “*” );
printf( “ “ );
printf( “\n” );
Passo 1
A palavra-chave goto usa rótulos para os quais o fluxo vai quando a palavra-chave é executada.
Nossa tarefa é criar um loop usando esta funcionalidade para imprimir um retângulo. Usaremos uma variável de contador e dois rótulos, um para a linha superior e inferior e outro para a parte do meio.
O uso de instruções if é necessário para criar o resultado desejado.
Passo 2
O primeiro código de etiqueta:
int main()
{
int counter = 0;
line:
// end of the first line
if (counter == 5)
{
printf("\n");
counter++;
goto middle;
}
// end
if (counter == 22)
return 0;
printf("*");
counter++;
goto line; // loop back
...
}
Passo 3
A parte do meio:
int main()
{
...
middle:
// end of the lines
if (counter == 9 ||
counter == 13 ||
counter == 17)
{
printf("*");
printf("\n");
printf("*");
counter++;
// last middle line
if (counter == 18)
goto line;
}
printf(" ");
counter++;
goto middle;
}
Resposta
Ver o desenvolvimento.