Declaración ‘Goto’ en lenguaje C.

goto es una declaración de salto en lenguaje C, que transferir el control del programa a partir de una instrucción a otra declaración (donde se define la etiqueta).

goto puede transferir el programa de dentro del mismo bloque, no una etiqueta, en la que desea el control del programa de transferencia.

Definición de una etiqueta

Label se define siguiente por el dado sintaxis

label_name:

  • LABEL_NAME debe ser un nombre de identificador válido.
  • : (colon) se debe utilizar después de la LABEL_NAME .

La transferencia del control utilizando ‘goto’

de control del programa puede ser transferencia siguiente por la dada sintaxis

goto label_name;

Dos estilos de la declaración de goto ‘

Podemos utilizar goto declaración a el control del programa de transferencia de abajo a la parte superior (y uarr;) y arriba hacia abajo (y Darr;) .

Estilo 1 (Transferencia de Control de abajo a arriba)

// style 1
label-name:
statement1;
statement2;
..
if(any-test-condition)
goto label-name;

Aquí, si cualquier-test-condición es cierto, goto transferirá el control del programa a la etiqueta-nombre especificado .

Consideremos el siguiente ejemplo / programa


#include <stdio.h>
int main()
{
int number;
number=1;
repeat:
printf("%dn",number);
number++;
if(number<=10)
goto repeat;
return 0;
}

salida

    1
2
3
4
5
6
7
8
9
10

Estilo 2 (Transferencia el control de arriba a abajo)

// style 2
statements;
if(any-test-condition)
goto label-name;
statement1;
statement2;
label-name:
Other statements;

Aquí, si cualquier-test-condición es cierto, goto transferirá el control del programa a la etiqueta-nombre especificado .

Consideremos el siguiente ejemplo / programa


#include <stdio.h>
int main()
{
int number;
printf("Enter an integer number: ");
scanf("%d",&number);
if(number<=0)
goto end;
printf("Number is : %d", number);
end:
printf("Bye Bye !!!");
return 0;
}

salida

    First run:
Enter an integer number: 123
Number is : 123
Bye Bye !!!
Second run:
Enter an integer number: 0
Bye Bye !!!


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *