■ struct 키워드를 사용해 BMI 판정표를 만들고 체질량 지수(Body Mass Index)를 판정하는 방법을 보여준다.
▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
use std::io; struct BMIRange { minimum : f64, maximum : f64, label : &'static str } fn input(prompt : &str) -> f64 { println!("{}", prompt); let mut source: String = String::new(); io::stdin().read_line(&mut source).expect("입력 에러"); return source.trim().parse().expect("숫자 변환 에러"); } fn main() { let height_cm : f64 = input("키(cm) : "); let weight : f64 = input("몸무게(kg) : "); let height : f64 = height_cm / 100.0; let bmi : f64 = weight / height.powf(2.0); let bmi_range_list : Vec<BMIRange> = vec! [ BMIRange { minimum : 0.0, maximum : 18.5, label : "저체중" }, BMIRange { minimum : 18.5, maximum : 23.0, label : "정상" }, BMIRange { minimum : 23.0, maximum : 25.0, label : "비만전단계" }, BMIRange { minimum : 25.0, maximum : 30.0, label : "1단계 비만" }, BMIRange { minimum : 30.0, maximum : 35.0, label : "2단계 비만" }, BMIRange { minimum : 35.0, maximum : 99.0, label : "3단계 비만" } ]; let mut result: &str = "계산 불가"; for range in bmi_range_list { if range.minimum <= bmi && bmi < range.maximum { result = range.label; break; } } println!("BMI = {:.1}, 비만도 = {}", bmi, result); } |