Control-flow expressions are not allowed inside a const context.
At the moment, if and match, as well as the looping constructs for, while, and loop, are forbidden inside a const, static, or const fn.
const _: i32 = { let mut x = 0; loop { x += 1; if x == 4 { break; } } x };
This will be allowed at some point in the future, but the implementation is not yet complete. See the tracking issue for conditionals or loops in a const context for the current status.