This example shows how Rust's match guards work. The value x is matched against patterns with extra conditions called guards. Each arm has a pattern and a guard condition. The program checks each arm in order. If the pattern matches and the guard condition is true, it executes that arm's code and stops. Otherwise, it moves to the next arm. In the example, x=5 does not satisfy the first guard (5 < 3 is false), so it skips that arm. The second arm's guard (5 < 7) is true, so it runs that arm and returns "medium". The default arm is not reached. Variables x and n keep their values throughout. This helps control matching with extra checks beyond just the pattern.