표현식으로서의 루프
Coddy Rust 여정의 논리와 흐름 섹션에 포함된 레슨. 66개 중 5번째.
대부분의 프로그래밍 언어에서 반복문은 코드를 반복해서 실행하는 문입니다. 하지만 Rust에는 고유한 기능이 있습니다. 반복문은 값을 반환하는 expression이 될 수도 있습니다. 즉, 반복문의 result를 변수에 할당할 수 있습니다.
루프에서 값을 반환하려면 break 뒤에 반환하려는 값을 사용합니다:
let result = loop {
// 일부 조건 확인
if condition_met {
break 42; // 루프를 종료하고 42를 반환
}
};다음은 10부터 시작하여 첫 번째 even 숫자를 찾는 실용적인 예입니다:
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 표현식을 사용하여 해당 숫자부터 시작해 7로 나누어떨어지는 첫 번째 숫자를 찾습니다.
요구 사항:
- 값을 반환하는
loop표현식을 사용합니다 - 입력 숫자부터 checking을 시작합니다
- 7로 나누어떨어지는 첫 번째 숫자를 찾습니다(7로 나눌 때 나머지는 0)
break를 사용하여 loop에서 found 숫자를 반환합니다- result를 Print합니다
입력: 시작 숫자를 나타내는 단일 정수
출력: 입력 숫자부터 시작하여 7로 나누어떨어지는 첫 번째 숫자를 Print합니다
직접 해보기
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);
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Rust 컴파일러