Subrutinas: procedimientos y funciones - 2


Una función es una subrutina que devuelve un resultado (número, línea de caracteres, etc.).

Imagina que has pedido un producto en una tienda online. Desde el punto de vista de la programación, llamó a alguna subrutina y, a diferencia de un procedimiento, esta subrutina debe devolver un resultado: entregar el producto que ordenó. Estas subrutinas se denominan funciones.
Una función se formatea exactamente de la misma manera que un procedimiento. La única diferencia de un procedimiento es la presencia de un operador especial return,
 después de lo cual se escribe el valor que se devolverá al programa principal.

Una función que devuelve la media aritmética de dos enteros se vería así:
promedio flotante (int a, int b) { promedio flotante = (a + b) / 2.0; volver agosto; } Queda por descubrir cómo llamar a esta función en el programa principal. No debe llamar a una función de la misma manera que a un procedimiento: promedio(10, 5); El valor devuelto por la función se perderá. Es como si los productos de la tienda en línea no se dieran a nadie, sino que se tiraran. Es poco probable que al cliente le guste.

Es más correcto almacenar el resultado en una variable (o mostrarlo en la pantalla):
float a = promedio(10, 5); Console.WriteLine(promedio(10, 5));< /código>

A menudo, los programadores usan funciones booleanas que devuelven valores booleanos verdaderos o falsos (verdadero o falso).
Estas funciones son útiles para comprobar una propiedad.
Considere dos ejemplos de cómo escribir una función lógica que verifique la uniformidad de un número

Y la última nota sobre trabajar con funciones y procedimientos: el número de funciones y procedimientos en el programa no está limitado Además, una subrutina puede llamar a otra subrutina e incluso a sí misma.
Además, después de que el programa alcanza el return en la función, el programa deja de ejecutar inmediatamente la función y devuelve el valor.
Es decir, el segundo ejemplo de la tabla también podría abreviarse así:
bool es par(int n)
{
    si (n % 2 == 0) {
        devuelve Verdadero
    }
    devuelve Falso;
}

 

Mejor manera:
resultado de expresión
n % 2 == 0
será verdadero (verdadero) o falso (falso)
No es necesario escribir una declaración condicional.
No hagas eso.
Por supuesto, puede hacerlo, pero esta es una entrada más larga.
bool isEven(int n) { retorno (n % 2 == 0); } bool isEven(int n) { si (n % 2 == 0) { devolver verdadero;   } demás { falso retorno;   } }