A break statement with an argument appeared in a non-loop loop.
Example of erroneous code:
#![allow(unused)]
fn main() {
let mut i = 1;
fn satisfied(n: usize) -> bool { n % 23 == 0 }
let result = while true {
if satisfied(i) {
break 2 * i; // error: `break` with value from a `while` loop
}
i += 1;
};
} The break statement can take an argument (which will be the value of the loop expression if the break statement is executed) in loop loops, but not for, while, or while let loops.
Make sure break value; statements only occur in loop loops:
#![allow(unused)]
fn main() {
let mut i = 1;
fn satisfied(n: usize) -> bool { n % 23 == 0 }
let result = loop { // This is now a "loop" loop.
if satisfied(i) {
break 2 * i; // ok!
}
i += 1;
};
}
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0571.html