English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de lenguaje C

Control de flujo de lenguaje C

Funciones en C

Arreglos en C

Punteros en C

Cadenas en C

Estructura de lenguaje C

Archivo de lenguaje C

C Otro

Manual de Referencia de C

Sentencias goto en C

En este tutorial, aprenderás a crear sentencias goto en programación en C. Además, también aprenderás cuándo usar la sentencia goto y cuándo no usarla.

La sentencia goto nos permite transferir el control del programa a un label etiqueta específico.

Sintaxis de la sentencia goto

goto label;
... .. ...
... .. ...
label: 
statement;

label es un identificador. Cuando goto encuentra esta sentencia, el control del programa salta a label: y comienza a ejecutar el código.

Ejemplo: sentencia goto

//El programa calcula la suma de números positivos
//Si el usuario ingresa un número negativo, muestra la suma y el promedio.
#include <stdio.h>
int main() {
   const int maxInput = 100;
   int i;
   double number, average, sum = 0.0;
   for (i = 1; i <= maxInput; ++i) {
      printf("%d. Ingrese el número: ", i);
      scanf("%lf", &number);
      
      //Si el usuario ingresa un número negativo, salta
      if (number < 0.0) {
         goto salto;
      }
      sum += number;
   }
salto:
   average = sum / (i - 1);
   printf("Suma(总和) = %.2f\n", sum);
   printf("Promedio(平均值) = %.2f", average);
   return 0;
}

Resultado de salida

1. Ingrese el número: 3
2. Ingrese el número: 4.3
3. Ingrese el número: 9.3
4. Ingrese el número: -2.9
Suma(总和) = 16.60
Promedio(平均值) = 5.53

Razones para evitar o usar poco la sentencia Goto

El uso de la sentencia goto puede llevar a errores en el código y ser difícil de seguir. Por ejemplo:

one:
for (i = 0; i < number; ++i)
{
    test += i;
    goto two;
}
two: 
if (test > 5) {
  goto three;
}
... .. ...

Además, la sentencia goto te permite realizar operaciones inapropiadas, como salir de un rango.

Aunque así sea, a veces el goto puede ser útil. Por ejemplo: romper bucles anidados.

¿Deberías usar goto?

Si cree que el uso de la sentencia goto puede simplificar el programa, puede usarla. Sin embargo, goto es raramente útil y también puede crear cualquier programa en C sin usar ninguna sentencia goto.

Esto es C ++Las palabras del creador Bjarne StroustrupLa verdad de que 'goto' puede hacer todo es precisely la razón por la que no lo usamos.