initialize before the loop, update inside, use after — is the fundamental technique for building results from repeated operations. - `break` exits a loop early, `continue` skips to the next iteration, and `else` on a loop runs only if no `break` occurred. - **Nested loops** run the inner loop to com