刷题学rust(三)——rust分支语句

7-8 超速判断 (10 分)

在这里插入图片描述
这道题只需要一个简单的分支,非常简单的就可以解决,无需多言
AC代码:

use std::io;

fn main() {
    let mut input = String::new();

    io::stdin()
        .read_line(&mut input)
        .unwrap();
        let mut s = input.trim().split(' ');
        let a_str = s.next().unwrap();
        let mut a: i32 = a_str.parse().unwrap();
        if (a > 60) 
        {
            println!("Speed: {} - Speeding",a);
        } 
        else 
        {
            println!("Speed: {} - OK",a);
        }
}

7-9 用天平找小球 (10 分)

在这里插入图片描述
看到这个题我的第一反应是hash_map,不过这也太小题大做了吧。我们只需要简单的写三个分支就可以解决这个问题
AC代码:

use std::io;

fn main() {
    let mut input = String::new();

    io::stdin()
        .read_line(&mut input)
        .unwrap();
        let mut s = input.trim().split(' ');
        let a_str = s.next().unwrap();
        let a: i32 = a_str.parse().unwrap();
        let b_str = s.next().unwrap();
        let b : i32 = b_str.parse().unwrap();
        let c_str = s.next().unwrap();
        let c : i32 = c_str.parse().unwrap();
        if a==b
        {
            println!("C")
        }
        else if b==c
        {
            println!("A")
        }
        else
        {
            println!("B")
        }
}

大家有没有发现这两道题的分支不太一样
第一道题我的if判断条件加了括号,实际上,这样编译器会有一个warning。
最好的写法时第二种,不需要括号,只需要一个bool型条件句。


说完了if/if else语句,该说一下其他的分支了。

7-12 两个数的简单计算器 (10 分)

在这里插入图片描述
这在C/C++或者其他语言里,很自然的会想到switch case语句,但是switch case在rust中并不存在,取而代之的是match语句。先来看看这个题怎么实现
AC代码:

use std::io;

fn main() {
    let mut input = String::new();

    io::stdin()
        .read_line(&mut input)
        .unwrap();
        let mut s = input.trim().split(' ');
        let a_str = s.next().unwrap();
        let a: i32 = a_str.parse().unwrap();
        let b_str = s.next().unwrap();
        let b: char = b_str.parse().unwrap();
        let c_str = s.next().unwrap();
        let c: i32 = c_str.parse().unwrap();
        match b 
        {
            '+' => println!("{}",a+c),
            '-' => println!("{}",a-c),
            '*' => println!("{}",a*c),
            '/' => println!("{}",a/c),
            '%' => println!("{}",a%c),
            _ => println!("ERROR"),
        }
}

和switch case有一些相似,不过可以看到其实match比switch更加方便,不需要break,=>也比:更加明显。_代替defult也更加方便。match用起来很明了,大家肯定一看就懂~
需要多行代码时可以用一个{}把代码括起来,比如:

			'+' => {
					println!("{}",a+c);
                    println!("test")
                    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值