Web Home
Getting Started
Manual
Packages
Quick Reference
Language Reference
Function Reference
I/O Reference

- Language Reference
  - Starting and Quitting Yorick
  - Getting Help
  - Error Recovery
  - Array Data Types
  - Constants
  - Defining Variables
  - Arithmetic and Comparison Operators
  - Logical Operators
  - Creating Arrays
  - Indexing Arrays
  - Array Conformability Rules
  - Calling Functions
  - Defining Functions
  - Variable Scope
  - Returning from Functions
  - Compound Statements
  - Conditional Execution
  - Loops
- Function Reference
- I/O Reference

# Yorick Language Reference

## Loops

Yorick has three types of loops:

`while (`condition`)` body_statement
`do` body_statement `while (`condition`)
for (`init_expr `;` test_expr `;` inc_expr`)` body_statement

The init_expr and inc_expr of a `for` loop may be comma delimited lists of expressions. They or the test_expr may be omitted. In particular, `for (;;) ...` means ``do forever''. If there is a test_expr, the body_statement of the `for` loop will execute until it becomes false (possibly never executing). After each pass, but before the test_expr, the inc_expr executes. A `for` loop to make N passes through its body_statement might look like this:

`for (i=1 ; i<=N ; i++)` body_statement

Within a loop body, the following statements are legal:

`break` exit the current loop now
`continue` abort the current pass through the current loop

For more complex flow control, Yorick supports a `goto`:

`goto` label | go to the statement after label
label`:` statement | mark statement as a `goto` target