Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando la sentencia goto en C: sintaxis, uso práctico y mejores prácticas

Dominando la sentencia goto en C

En esta guía aprenderá cómo funciona la sentencia goto en C, su sintaxis correcta, cuándo puede ser útil y por qué generalmente se desaconseja en código moderno.


Sintaxis de la sentencia goto

goto etiqueta;
...
etiqueta: sentencia;

Una etiqueta es un identificador seguido de dos puntos. Cuando se ejecuta la sentencia goto, el control salta directamente a la línea marcada por esa etiqueta.

Dominando la sentencia goto en C: sintaxis, uso práctico y mejores prácticas

Ejemplo: Usar goto para salir de un bucle temprano

#include <stdio.h>
int main() {
    const int maxEntrada = 100;
    int i;
    double numero, promedio, suma = 0.0;
    for (i = 1; i <= maxEntrada; ++i) {
        printf("%d. Ingrese un número: ", i);
        scanf("%lf", &numero);
        /* Si el usuario ingresa un número negativo, saltar el resto del bucle */
        if (numero < 0.0) {
            goto salir_bucle;
        }
        suma += numero;
    }
    salir_bucle:
    promedio = suma / (i - 1);
    printf("Suma = %.2f\n", suma);
    printf("Promedio = %.2f", promedio);
    return 0;
}

Salida

1. Ingrese un número: 3
2. Ingrese un número: 4.3
3. Ingrese un número: 9.3
4. Ingrese un número: -2.9
Suma = 16.60
Promedio = 5.53

Por qué la mayoría de desarrolladores evitan goto

La sentencia goto puede crear "código espagueti" que es difícil de leer, probar y mantener. Por ejemplo:

uno:
for (i = 0; i < numero; ++i) {
    test += i;
    goto dos;
}
dos:
if (test > 5) {
    goto tres;
}
// ...

Saltar fuera de ámbitos anidados o a través de estructuras de control complejas a menudo oculta el flujo del programa, llevando a errores difíciles de diagnosticar.


Cuándo goto podría seguir siendo apropiado

Aunque rara vez es necesario, goto puede simplificar escenarios específicos, como:

Úselo con moderación, y siempre documente la intención para que los futuros mantenedores entiendan el propósito del salto.


¿Debería usar goto?

En la mayoría de programas modernos en C, las construcciones de control de flujo estructurado—bucles, funciones y sentencias switch—cubren los casos de uso para goto. El estándar de C y las guías de mejores prácticas recomiendan evitarlo a menos que haya una razón convincente. Como dijo famosamente Bjarne Stroustrup, creador de C++: "El hecho de que 'goto' pueda hacer cualquier cosa es exactamente por qué no lo usamos."

En última instancia, si puede lograr la misma lógica con código claro y estructurado, elija ese camino. Reserve goto para situaciones raras y bien justificadas y documéntelo a fondo.

Lenguaje C

  1. Tecnología del Localizador (Beeper): De Primeras Innovaciones a la Comunicación Bidireccional del Mañana
  2. ¿Qué es un Número de Parte? Entendiendo su Rol en Inventario y Ventas
  3. Dominando la lógica condicional en C#: If, If-Else, If-ElseIf y sentencias If anidadas
  4. Dominando la sentencia switch en C#: Sintaxis, ejemplos y mejores prácticas
  5. Sentencia break en C#: Cómo y cuándo usarla
  6. Dominando la sentencia continue en C#: Cómo saltar iteraciones de bucles eficazmente
  7. Dominando las Sentencias Condicionales en C++: if, if...else y if...else Anidado Explicados
  8. Dominando la Sentencia break en C++
  9. Dominando la sintaxis básica de C: Tokens, estructura y punto y coma
  10. Dominando la sentencia pass en Python: Guía práctica
  11. Números en Python: Entendiendo tipos de datos numéricos inmutables