La sentencia return finaliza el proceso actual de forma inmediata, como si se llegara al END de su BEGIN excepto si antes se llamó a una sentencia FRAME_PERCENT con un valor que no sea múltiplo de 100, en este caso el proceso seguirá ejecutándose.
Esta sentencia en el código principal lo finalizará, pero si quedan procesos vivos éstos se seguirán ejecutando. Para terminar un programa y todos sus procesos se puede utilizar, por ejemplo, la función cdiv_exit().
Un return dentro de un proceso lo finalizará, matando a dicho proceso.
MAIN_PROGRAM_CDIV BEGIN_PROGRAM LOOP{ if (key(_enter)) return; FRAME; } END_PROGRAM
En este ejemplo, al pulsarse la tecla de ENTER se ejecutará la sentencia return, finalizando el programa.
Uso de return para retornar un valor
Es posible construir funciones que reciban una serie de parámetros y devuelvan un valor. Por ejemplo, una función que reciba dos valores numéricos y devuelva el mayor de ambos.
Para ello, se debe utilizar esta sentencia con la siguiente sintaxis:
return(expresión)
A continuación se muestra el ejemplo antes propuesto: una implementación de la función matemática max que devuelve el mayor de sus dos parámetros.
int max(int a, int b){ if (a > b) return(a); else return(b); } MAIN_PROGRAM_CDIV BEGIN_PROGRAM x=max(2, 3)+max(5, 4); END_PROGRAM
Tras ejecutarse este programa, la variable x del proceso principal valdrá 8 (3+5).
Nota: Por defecto, en los procesos se utiliza la sentencia return sin la expresión entre paréntesis.
Ver: Sintaxis