Exit Scope: break
Exit Scope: break
Terminate execution of a block within your processes scope
Description
break will terminate execution of a block (eg function, private, foreach, if, etc).
break requires a parameter and that parameter is the name of the caller block you wish to break out of. If it is a function or private, then it will be the name of that function or private. If it is an if or foreach loop, then it will be if or foreach (respectively).
Usage
break block-name
Examples
Exiting an iteration block
function foo {
%[1..10] -> foreach i {
out $i
if { $i == 5 } then {
out "exit running function"
break foo
out "ended"
}
}
}
Running the above code would output:
» foo
1
2
3
4
5
exit running function
Exiting a function
break can be considered to exhibit the behavior of return (from other languages) too
function example {
if { $USER == "root" } then {
err "Don't run this as root"
break example
}
# ... do something ...
}
Though in this particular use case it is recommended that you use return instead, the above code does illustrate how break behaves.
Detail
break cannot escape the bounds of its scope (typically the function it is running inside). For example, in the following code we are calling break bar (which is a different function) inside of the function foo:
function foo {
%[1..10] -> foreach i {
out $i
if { $i == 5 } then {
out "exit running function"
break bar
out "ended"
}
}
}
function bar {
foo
}
Regardless of whether we run foo or bar, both of those functions will raise the following error:
Error in `break` (7,17): no block found named `bar` within the scope of `foo`
See Also
- Exit Function:
return: Exits current function scope - Exit Murex:
exit: Exit murex - For Each In Map:
formap: Iterate through a map or other collection of data - For Each In array:
foreach: Iterate through an array - If Conditional:
if: Conditional statement to execute different blocks of code depending on the result of the condition - Next Iteration:
continue: Terminate process of a block within a caller function - Output String, stdout:
out: Print a string to the stdout with a trailing new line character - Private Function:
private: Define a private function block - Public Function:
function: Define a function block
This document was generated from builtins/core/structs/break_doc.yaml.