if else 练习题
-
判断一个数是正数、负数还是零:
编写一个程序,接收一个整数作为输入,然后使用 if..else if..else
语句判断该数是正数、负数还是零,并输出相应的结果。
-
检查闰年:
编写一个函数,接受年份作为参数,然后判断该年份是否为闰年。闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
-
成绩等级:
给定一个分数(0-100),使用 if..else if..else
语句来判断成绩等级:
- A: 90-100
- B: 80-89
- C: 70-79
- D: 60-69
- F: <60
-
三数排序:
给定三个整数,编写代码对它们进行排序并从小到大输出。
-
菜单选择:
编写一个简单的菜单选择程序,用户可以输入1、2或3,然后程序会输出他们选择的是“选项一”、“选项二”或“选项三”。
-
温度转换器:
编写一个程序,让用户输入温度值和一个选择(C或F),然后将其从摄氏度转换为华氏度或从华氏度转换为摄氏度。
-
奇偶判断:
编写一个函数,接受一个整数作为参数,并判断该整数是奇数还是偶数。
-
最大数寻找:
给定三个整数,编写代码找出其中的最大数。
-
年龄分组:
根据输入的年龄,将人分为不同的年龄组:
- 儿童:0-12岁
- 青少年:13-19岁
- 成年人:20-59岁
- 老年人:60岁及以上
-
支付方式确认:
编写一个程序,用户可以选择支付方式(现金、信用卡、转账),然后程序输出确认信息,例如“您选择了信用卡支付”。
习题答案
use std::io;
fn main() {
let number: i32 = get_number_from_input("选择要查看的题目,从1到10:");
match number {
1 => practice_if_statement_01(),
2 => practice_if_statement_02(),
3 => practice_if_statement_03(),
4 => practice_if_statement_04(),
5 => practice_if_statement_05(),
6 => practice_if_statement_06(),
7 => practice_if_statement_07(),
8 => practice_if_statement_08(),
9 => practice_if_statement_09(),
10 => practice_if_statement_10(),
_ => println!("未知的题目"),
}
}
/*
判断一个数是正数、负数还是零:
*/
fn practice_if_statement_01() {
println!("1.判断一个数是正数、负数还是零");
let number: i32 = get_number_from_input("请输入一个整数");
if number == 0 {
println!("零");
} else if number > 0 {
println!("正整数");
} else {
println!("负整数");
}
}
/*检查闰年*/
fn practice_if_statement_02() {
println!("2.判断是否为闰年");
let number: i32 = get_number_from_input("请输入一个整数,作为年份");
if number % 4 == 0 && number % 100 != 0 {
println!("是闰年");
} else if number % 400 == 0 {
println!("是闰年");
} else {
println!("不是闰年");
}
}
/* 成绩等级*/
fn practice_if_statement_03() {
println!("3.成绩等级");
let number: i32 = get_number_from_input("请输入一个整数,作为成绩");
if number < 60 {
println!("F");
} else if number < 70 {
println!("D");
} else if number < 80 {
println!("C");
} else if number < 90 {
println!("B");
} else if number <= 100 {
println!("A");
} else {
println!("非法的成绩");
}
}
/*
三数排序
*/
fn practice_if_statement_04() {
println!("4.三数排序");
let number1: i32 = get_number_from_input("请依次输入3个整数,第1个");
let number2: i32 = get_number_from_input("请依次输入3个整数,第2个");
let number3: i32 = get_number_from_input("请依次输入3个整数,第3个");
let mut min = number1;
if number2 < min {
min = number2;
}
if number3 < min {
min = number3;
}
let mut max = number1;
if number2 > max {
max = number2;
}
if number3 > max {
max = number3;
}
let mut mid = number1;
if mid == min || mid == max {
mid = number2;
}
if mid == min || mid == max {
mid = number3;
}
println!("{} <= {} <= {}", min, mid, max);
}
/*
菜单选择
*/
fn practice_if_statement_05() {
println!("5.菜单选择");
let number: i32 = get_number_from_input("请输入1个整数,范围1,2,3");
if number == 1 {
println!("选项一");
} else if number == 2 {
println!("选项二");
} else if number == 3 {
println!("选项三");
} else {
println!("未知的选项");
}
}
/*
温度转换器
*/
fn practice_if_statement_06() {
println!("6.温度转换器");
let input: String = get_input_str("请输入1个数值,然后以C或者F结尾,代表摄氏和华氏温度");
let trimed = input.trim();
let sign = &trimed[trimed.len() - 1..];
let number = &trimed[..trimed.len() - 1]
.trim()
.parse::<f64>()
.expect("无法将输入解析为数字");
if sign == "F" {
//°C = (°F - 32) × 5/9
println!("C 温度为 {}", (number - 32.0) * 5.0 / 9.0);
} else if sign == "C" {
//°F = °C × 9/5 + 32
println!("F 温度为 {}", number * 9.0 / 5.0 + 32.0);
} else {
println!("未知的温度格式");
}
}
/*
奇偶判断
*/
fn practice_if_statement_07() {
println!("7.奇偶判断");
let number: i32 = get_number_from_input("请输入1个整数");
if number % 2 == 0 {
println!("偶数");
} else {
println!("奇数");
}
}
/*
最大数寻找
*/
fn practice_if_statement_08() {
println!("8.最大数寻找");
let number1: i32 = get_number_from_input("依次输入3个整数,第1个");
let number2: i32 = get_number_from_input("依次输入3个整数,第2个");
let number3: i32 = get_number_from_input("依次输入3个整数,第3个");
let mut max = number1;
if max < number2 {
max = number2;
}
if max < number3 {
max = number3;
}
println!("最大数 {}", max);
}
/*
年龄分组
*/
fn practice_if_statement_09() {
println!("9.年龄分组");
let age: i32 = get_number_from_input("输入1个整数,作为年龄");
if age >= 0 && age <= 12 {
println!("儿童");
} else if age <= 19 {
println!("青年");
} else if age <= 59 {
println!("成年");
} else if age < 0 {
println!("不合理的年龄");
} else {
println!("老年");
}
}
/*
支付方式确认
*/
fn practice_if_statement_10() {
println!("10.支付方式确认");
println!("1.现金");
println!("2.信用卡");
println!("3.转账");
let number = get_number_from_input("请输入数字,选择你的支付方式");
if number == 1 {
println!("使用现金支付");
} else if number == 2 {
println!("使用信用卡支付");
} else if number == 3 {
println!("使用转账支付");
} else {
println!("未知的支付方式");
}
}
fn get_number_from_input(tips: &str) -> i32 {
get_input_int32(tips).unwrap_or_else(|| {
println!("输入的不是整数");
std::process::exit(1);
})
}
fn get_input_int32(tips: &str) -> Option<i32> {
let input = get_input_str(tips);
input.trim().parse().ok()
}
fn get_input_str(tips: &str) -> String {
println!("{}", tips);
let mut input = String::new();
io::stdin().read_line(&mut input).expect("读取失败");
input
}