diff options
| author | Kieran Hunt <kieran.hunt92@gmail.com> | 2015-07-26 19:39:32 +0200 |
|---|---|---|
| committer | Kieran Hunt <kieran.hunt92@gmail.com> | 2015-07-26 19:39:32 +0200 |
| commit | b36551b0e2cecaef8908cb11b63aff1256a377f5 (patch) | |
| tree | 83775853c1256c043376ddaf70c669b90916ba28 | |
| parent | a5c12f4e39d32af3c951b66bd2839bc0b5a1125b (diff) | |
| download | rust-b36551b0e2cecaef8908cb11b63aff1256a377f5.tar.gz rust-b36551b0e2cecaef8908cb11b63aff1256a377f5.zip | |
Adding docs for loops and loop labels.
| -rw-r--r-- | src/doc/trpl/SUMMARY.md | 1 | ||||
| -rw-r--r-- | src/doc/trpl/infinite-loops.md | 40 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/doc/trpl/SUMMARY.md b/src/doc/trpl/SUMMARY.md index 85f0019276e..c2afae71476 100644 --- a/src/doc/trpl/SUMMARY.md +++ b/src/doc/trpl/SUMMARY.md @@ -26,6 +26,7 @@ * [Primitive Types](primitive-types.md) * [Comments](comments.md) * [if](if.md) + * [infinite loops](infinite-loops.md) * [for loops](for-loops.md) * [while loops](while-loops.md) * [Ownership](ownership.md) diff --git a/src/doc/trpl/infinite-loops.md b/src/doc/trpl/infinite-loops.md new file mode 100644 index 00000000000..948249e924c --- /dev/null +++ b/src/doc/trpl/infinite-loops.md @@ -0,0 +1,40 @@ +% infinite loops + +The infinite `loop` is the simplest form of `loop` available in Rust. Using the keyword `loop`, Rust provides a way to loop until a `break` or `return` is issued. Rust's infinite `loop`s look like this: + +``` +loop { + println!("Loop forever!"); +} +``` + +Leaving a infinite `loop` can be achieved using a break statement as follows: + +``` +let mut i = 0; +loop { + if i == 10 { + break; + } + println!("Loop number {}", i); + i = i + 1; +} +``` + +## Loop labels + +Labels can be assigned to `loop`s to so that, in the case of nested `loop`s, an outer `loop` may be left early when certain criteria are met in an inner `loop`. + +``` +let mut i = 0; +'outer: loop { + 'inner: loop { + if i == 10 { + break 'outer; + } + i = i + 1; + } +} +``` + +In the above example, the inner `loop` is able to cause the outer `loop` to stop. |
