표현식으로서의 루프
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 5번째.
대부분의 프로그래밍 언어에서 루프는 코드를 반복적으로 실행하는 문(statement)입니다. 하지만 Rust에는 독특한 기능이 있습니다. 루프가 값을 반환하는 표현식(expression)이 될 수도 있다는 점입니다. 즉, 루프의 결과를 변수에 할당할 수 있습니다.
루프에서 값을 반환하려면, break 뒤에 반환하려는 값을 입력합니다:
let result = loop {
// 어떤 조건 확인
if condition_met {
break 42; // 루프를 종료하고 42를 반환
}
};10부터 시작하여 첫 번째 짝수를 찾는 실용적인 예제입니다:
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // 짝수를 반환합니다
}
counter += 1;
};
println!("First even number: {}", first_even);루프는 짝수를 찾을 때까지 계속되며, 그 후 break counter를 사용하여 루프를 종료하고 해당 숫자를 반환합니다. 반환된 값은 first_even에 할당됩니다.
챌린지
쉬움입력으로 시작 숫자를 받게 됩니다. 입력을 읽고 정수로 변환한 다음, loop를 표현식(expression)으로 사용하여 해당 숫자부터 시작하여 7로 나누어떨어지는 첫 번째 숫자를 찾으세요.
요구 사항:
- 값을 반환하는
loop표현식을 사용하세요. - 입력받은 숫자부터 확인을 시작하세요.
- 7로 나누어떨어지는(7로 나눈 나머지가 0인) 첫 번째 숫자를 찾으세요.
break를 사용하여 루프에서 찾은 숫자를 반환하세요.- 결과를 출력하세요.
입력: 시작 숫자를 나타내는 단일 정수
출력: 입력된 숫자부터 시작하여 7로 나누어떨어지는 첫 번째 숫자를 출력하세요.
치트 시트
Rust에서 루프는 값을 반환하는 표현식이 될 수 있습니다. 루프를 종료하고 해당 값을 반환하려면 break 뒤에 값을 사용하세요:
let result = loop {
if condition_met {
break 42; // 루프를 종료하고 42를 반환
}
};첫 번째 짝수를 찾는 예제:
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // 짝수를 반환
}
counter += 1;
};
println!("First even number: {}", first_even);직접 해보기
use std::io;
fn main() {
// 입력 읽기
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let start_number: i32 = input.trim().parse().expect("Invalid input");
// TODO: 아래에 코드를 작성하세요
// 루프 표현식을 사용하여 7로 나누어지는 첫 번째 숫자를 찾으세요
// 결과 출력
// println!("{}", result);
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.