Rollup merge of #65544 - dorfsmay:doc_keyword_break, r=Dylan-DPC
Added doc on keyword break RE: #34601
This commit is contained in:
commit
d56466ff5f
1 changed files with 65 additions and 2 deletions
|
@ -33,9 +33,72 @@ mod as_keyword { }
|
|||
//
|
||||
/// Exit early from a loop.
|
||||
///
|
||||
/// The documentation for this keyword is [not yet complete]. Pull requests welcome!
|
||||
/// When `break` is encountered, execution of the associated loop body is
|
||||
/// immediately terminated.
|
||||
///
|
||||
/// ```rust
|
||||
/// let mut last = 0;
|
||||
///
|
||||
/// for x in 1..100 {
|
||||
/// if x > 12 {
|
||||
/// break;
|
||||
/// }
|
||||
/// last = x;
|
||||
/// }
|
||||
///
|
||||
/// assert_eq!(last, 12);
|
||||
/// println!("{}", last);
|
||||
/// ```
|
||||
///
|
||||
/// A break expression is normally associated with the innermost loop enclosing the
|
||||
/// `break` but a label can be used to specify which enclosing loop is affected.
|
||||
///
|
||||
///```rust
|
||||
/// 'outer: for i in 1..=5 {
|
||||
/// println!("outer iteration (i): {}", i);
|
||||
///
|
||||
/// 'inner: for j in 1..=200 {
|
||||
/// println!(" inner iteration (j): {}", j);
|
||||
/// if j >= 3 {
|
||||
/// // breaks from inner loop, let's outer loop continue.
|
||||
/// break;
|
||||
/// }
|
||||
/// if i >= 2 {
|
||||
/// // breaks from outer loop, and directly to "Bye".
|
||||
/// break 'outer;
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
/// println!("Bye.");
|
||||
///```
|
||||
///
|
||||
/// When associated with `loop`, a break expression may be used to return a value from that loop.
|
||||
/// This is only valid with `loop` and not with any other type of loop.
|
||||
/// If no value is specified, `break;` returns `()`.
|
||||
/// Every `break` within a loop must return the same type.
|
||||
///
|
||||
/// ```rust
|
||||
/// let (mut a, mut b) = (1, 1);
|
||||
/// let result = loop {
|
||||
/// if b > 10 {
|
||||
/// break b;
|
||||
/// }
|
||||
/// let c = a + b;
|
||||
/// a = b;
|
||||
/// b = c;
|
||||
/// };
|
||||
/// // first number in Fibonacci sequence over 10:
|
||||
/// assert_eq!(result, 13);
|
||||
/// println!("{}", result);
|
||||
/// ```
|
||||
///
|
||||
/// For more details consult the [Reference on "break expression"] and the [Reference on "break and
|
||||
/// loop values"].
|
||||
///
|
||||
/// [Reference on "break expression"]: ../reference/expressions/loop-expr.html#break-expressions
|
||||
/// [Reference on "break and loop values"]:
|
||||
/// ../reference/expressions/loop-expr.html#break-and-loop-values
|
||||
///
|
||||
/// [not yet complete]: https://github.com/rust-lang/rust/issues/34601
|
||||
mod break_keyword { }
|
||||
|
||||
#[doc(keyword = "const")]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue