Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0571: `break` with value from a `while` loop
What it meansA break statement with an argument appeared in a non-loop loop.
What rustc prints
error[E0571]: `break` with value from a `while` loop --> main.rs:5:9 | 3 | let result = while true { | ---------- you can't `break` with a value in a `while` loop 4 | if satisfied(i) { 5 | break 2 * i; // error: `break` with value from a `while` loop | ^^^^^^^^^^^ can only break with a value inside `loop` or breakable block | help: use `break` on its own without a value inside this `while` loop | 5 - break 2 * i; // error: `break` with value from a `while` loop 5 + break; // error: `break` with value from a `while` loop |
Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
A break statement with an argument appeared in a non-loop loop.
Example of erroneous code:
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:
let result = loop { // This is now a "loop" loop.
if satisfied(i) {
break 2 * i; // ok!
}
i += 1;
};From rustc --explain E0571 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0524two closures require unique access to `*x` at the same time
- E0570The requested ABI is unsupported by the current target
- E0572return statement outside of function body
- E0584found a documentation comment that doesn't document anything
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?