zoukankan      html  css  js  c++  java
  • Rust摄氏温度与华氏温度转换

    首先明确摄氏温度与华氏温度的转换规则

    华氏度=摄氏度*1.8+32

    摄氏度=(华氏度-32)/1.8

    然后就可以开始编码,首先要引入标准库中的io模块,因为我们要让用户输入一个温度,
    当用户输入后,我们潜规则默认后缀带C为摄氏度,带F为华氏度
    以下为编程注意点:
      一、stdin().read_line()会带入回车符,先用trim()去掉。
      二、用户输入可能不会区分大小写,先to_uppercase()转为大写,再去判断。
      三、截取掉最后一位最好不用字符串索引去处理,采用chars()方法更优。
      四、chars.next_back()是按码位进行迭代的。
      五、最后温度转换的判断用了if和match两种写法分别实现,看起来还是match更加简洁易读。
    完整代码如下,期望大家批评指正。

    use std::io;
    fn main() {
        println!("请输入温度(以C或者F结尾):");
        let mut s = String::new();
        match io::stdin().read_line(&mut s) {
            Ok(_) => s = s.trim().to_uppercase().to_string(),
            Err(e) => println!("error:{}", e),
        }
    
        let mut chars = s.chars();
        chars.next_back();
        let temperature: f64 = match chars.as_str().parse() {
            Ok(num) => num,
            _ => {
                println!("请输入数字");
                return;
            }
        };
    
        if s.chars().last() == Some('C') {
            println!("您输入的是摄氏度:{}", temperature);
            println!("转换为华氏度是:{}", temperature* 1.8 + 32.0);
        } else if s.chars().last() == Some('F') {
            println!("您输入的是华氏度:{}", temperature);
            println!("转换为华氏度是:{}", (temperature- 32.0) / 1.8);
        } else {
            println!("请以C或者F结尾")
        }
    
        match s.chars().last() {
            Some('C') => {
                println!("您输入的是摄氏度:{}", temperature);
                println!("转换为华氏度是:{}", temperature* 1.8 + 32.0);
            }
            Some('F') => {
                println!("您输入的是华氏度:{}", temperature);
                println!("转换为华氏度是:{}", (temperature- 32.0) / 1.8);
            }
            _ => println!("请以C或者F结尾"),
        }
    }
    
  • 相关阅读:
    nginx 命令
    nginx 配置文件(windows)
    nginx 配置文件(linux)
    nginx 安装
    什么是REST架构
    名词解释
    建造者模式
    单例模式
    工厂模式
    赋值运算符,拷贝构造函数,clone()方法总结
  • 原文地址:https://www.cnblogs.com/qisong/p/14471243.html
Copyright © 2011-2022 走看看