RETURN Return From Function

Section: Flow Control

Usage

The return statement is used to immediately return from a function, or to return from a keyboard session. The syntax for its use is
  return

Inside a function, a return statement causes FreeMat to exit the function immediately. When a keyboard session is active, the return statement causes execution to resume where the keyboard session started.

Example

In the first example, we define a function that uses a return to exit the function if a certain test condition is satisfied.

     return_func.m
function ret = return_func(a,b)
  ret = 'a is greater';
  if (a > b)
    return;
  end
  ret = 'b is greater';
  printf('finishing up...\n');

Next we exercise the function with a few simple test cases:

--> return_func(1,3)
finishing up...

ans = 
b is greater
--> return_func(5,2)

ans = 
a is greater

In the second example, we take the function and rewrite it to use a keyboard statement inside the if statement.

     return_func2.m
function ret = return_func2(a,b)
  if (a > b)
     ret = 'a is greater';
     keyboard;
  else
     ret = 'b is greater';
  end
  printf('finishing up...\n');

Now, we call the function with a larger first argument, which triggers the keyboard session. After verifying a few values inside the keyboard session, we issue a return statement to resume execution.

--> return_func2(2,4)
finishing up...

ans = 
b is greater
--> return_func2(5,1)
[return_func2,4]--> ret

ans = 
a is greater
[return_func2,4]--> a

ans = 
 5 

[return_func2,4]--> b

ans = 
 1 

[return_func2,4]--> return
finishing up...

ans = 
a is greater