declaración de retorno en C/C++ con ejemplos

Prerrequisito: Funciones en C/C++

La declaración de retorno devuelve el flujo de la ejecución a la función desde donde se llama. Esta declaración no necesita obligatoriamente ninguna declaración condicional. Tan pronto como se ejecuta la declaración, el flujo del programa se detiene inmediatamente y devuelve el control desde donde se llamó. La declaración de devolución puede o no devolver nada para una función nula, pero para una función no nula, se debe devolver un valor de retorno.

Sintaxis:

return[expression];


Hay varias formas de usar declaraciones de retorno. Algunos se mencionan a continuación:

  1. Métodos que no devuelven un valor: en C/C++ no se puede omitir la declaración de devolución, cuando los métodos son de tipo de devolución. La declaración de devolución solo se puede omitir para los tipos nulos.
    • No usar la declaración de retorno en la función de tipo de retorno nulo: cuando una función no devuelve nada, se usa el tipo de retorno nulo. Entonces, si hay un tipo de retorno nulo en la definición de la función, entonces no habrá declaración de retorno dentro de esa función (generalmente).

      Sintaxis:

      void func()
      {
          .
          .
          .
      }
      

      Ejemplo:

      C

      // C code to show not using return
      // statement in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }

      C++

      // C++ code to show not using return
      // statement in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }
      Producción:

      Welcome to GeeksforGeeks
      
    • Uso de la declaración de devolución en la función de tipo de devolución nula: ahora surge la pregunta, ¿qué sucede si hay una declaración de devolución dentro de una función de tipo de devolución nula? Como sabemos que, si hay un tipo de retorno nulo en la definición de la función, entonces no habrá declaración de retorno dentro de esa función. Pero si hay una declaración de retorno dentro, tampoco habrá problema si la sintaxis de la misma será:

      Sintaxis correcta:

      void func()
      {
          return;
      }
      

      Esta sintaxis se usa en la función solo como una declaración de salto para interrumpir el flujo de la función y saltar fuera de ella. Uno puede pensar en ello como una alternativa a la » instrucción de ruptura » para usar en funciones.

      Ejemplo:

      C

      // C code to show using return
      // statement in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return statement
          return;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }

      C++

      // C++ code to show using return
      // statement in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return statement
          return;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }
      Producción:

      Welcome to GeeksforGeeks
      

      Pero si la declaración de devolución intenta devolver un valor en una función de tipo de devolución nula, eso generará errores.

      Sintaxis incorrecta:

      void func()
      {
          return value;
      }
      

      Advertencias:

      warning: 'return' with a value, in function returning void
      

      Ejemplo:

      C

      // C code to show using return statement
      // with a value in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return
          // statement to return a value
          return 10;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }

      C++

      // C++ code to show using return statement
      // with a value in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return
          // statement to return a value
          return 10;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }
      Advertencias:

      prog.c: In function 'Print':
      prog.c:12:9: warning: 'return' with a value, in function returning void
        return 10;
               ^
      
  2. Métodos que devuelven un valor: para los métodos que definen un tipo de devolución, la declaración de devolución debe ir seguida inmediatamente por el valor de devolución de ese tipo de devolución especificado.

    Sintaxis:

    return-type func()
    {
        return value;
    }
    

    Ejemplo:

    C

    // C code to illustrate Methods returning
    // a value using return statement
      
    #include <stdio.h>
      
    // non-void return type
    // function to calculate sum
    int SUM(int a, int b)
    {
        int s1 = a + b;
      
        // method using the return
        // statement to return a value
        return s1;
    }
      
    // Driver method
    int main()
    {
        int num1 = 10;
        int num2 = 10;
        int sum_of = SUM(num1, num2);
        printf("The sum is %d", sum_of);
        return 0;
    }

    C++

    // C++ code to illustrate Methods returning
    // a value using return statement
      
    #include <iostream>
    using namespace std;
      
    // non-void return type
    // function to calculate sum
    int SUM(int a, int b)
    {
        int s1 = a + b;
      
        // method using the return
        // statement to return a value
        return s1;
    }
      
    // Driver method
    int main()
    {
        int num1 = 10;
        int num2 = 10;
        int sum_of = SUM(num1, num2);
        cout << "The sum is " << sum_of;
        return 0;
    }
    Producción:

    The sum is 20
    

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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