요약 - 안전한 나눗셈 함수
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 48번째.
챌린지
쉬움두 개의 입력을 받게 됩니다. 첫 번째 입력은 피제수(dividend)를 나타내는 숫자이고, 두 번째 입력은 제수(divisor)를 나타내는 숫자입니다. 두 개의 f64 매개변수를 받고 Result<f64, &'static str>를 반환하는 safe_divide 함수를 작성하세요. 이 함수는 제수가 0일 때 Err("Cannot divide by zero")를 반환하고, 그렇지 않으면 나눗셈 결과와 함께 Ok를 반환해야 합니다. match 표현식을 사용하여 결과를 처리하고 적절한 출력을 인쇄하세요.
요구 사항:
- 첫 번째 입력(피제수)을 읽고 공백을 제거합니다.
- 첫 번째 입력을
f64로 파싱합니다. - 두 번째 입력(제수)을 읽고 공백을 제거합니다.
- 두 번째 입력을
f64로 파싱합니다. - 두 개의
f64매개변수를 받고Result<f64, &'static str>를 반환하는safe_divide함수를 작성하세요. - 함수 내부에서 제수가
0.0인지 확인합니다:- 맞다면,
Err("Cannot divide by zero")를 반환합니다. - 아니라면,
Ok(dividend / divisor)를 반환합니다.
- 맞다면,
- 파싱된 두 숫자로 함수를 호출합니다.
match표현식을 사용하여Result를 처리합니다.Ok(value)암(arm)에서Division result: [value]를 출력합니다.Err(error)암(arm)에서Error: [error]를 출력합니다.
입력:
- 첫 번째 줄: 피제수를 나타내는 숫자 (예:
20.0) - 두 번째 줄: 제수를 나타내는 숫자 (예:
4.0)
출력:
- 나눗셈에 성공한 경우:
Division result: [result] - 0으로 나눈 경우:
Error: Cannot divide by zero
직접 해보기
use std::io;
// TODO: 여기에 safe_divide 함수를 작성하세요
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
// 여기에 코드를 작성하세요
// }
fn main() {
// 첫 번째 입력값(피제수)을 읽습니다
let mut dividend_input = String::new();
io::stdin().read_line(&mut dividend_input).expect("Failed to read line");
let dividend: f64 = dividend_input.trim().parse().expect("Invalid number");
// 두 번째 입력값(제수)을 읽습니다
let mut divisor_input = String::new();
io::stdin().read_line(&mut divisor_input).expect("Failed to read line");
let divisor: f64 = divisor_input.trim().parse().expect("Invalid number");
// TODO: safe_divide를 호출하고 match를 사용하여 Result를 처리하세요
// 결과에 따라 적절한 출력을 인쇄하세요
}Logic & Flow의 모든 레슨
7'Result'를 이용한 에러 처리
'Result'란 무엇인가요?'Result'와 함께 'match' 사용하기is_ok()와 is_err()단축 방법: unwrap과 expect물음표 연산자 '?'문자열을 숫자로 파싱하기요약 - 안전한 나눗셈 함수