Rust学习入门--【10】Rust 条件语句

系列文章目录

Rust 语言是一种高效、可靠的通用高级语言,效率可以媲美 C / C++ 。本系列文件记录博主自学Rust的过程。欢迎大家一同学习。

Rust学习入门–【1】引言
Rust学习入门–【2】Rust 开发环境配置
Rust学习入门–【3】Cargo介绍
Rust学习入门–【4】Rust 输出到命令行
Rust学习入门–【5】源代码文件结构简介
Rust学习入门–【6】Rust 基础语法
Rust学习入门–【7】Rust 数据类型
Rust学习入门–【8】复合类型
Rust学习入门–【9】Rust 函数
Rust学习入门–【10】Rust 条件语句
Rust学习入门–【11】Rust 运算符
Rust学习入门–【12】Rust 循环
Rust学习入门–【13】Rust 字符串(上)
Rust学习入门–【14】Rust 字符串(下)
Rust学习入门–【15】Rust 所有权
Rust学习入门–【16】Rust 借用所有权 Borrowing / 引用
Rust学习入门–【17】Rust Slice(切片)类型



Rust 条件语句

在 Rust 语言中的条件语句是这种格式的

fn <函数名> ( <参数> ) {<函数体>}

实例

fn main() {
    let number = 6;
    if number < 8 {
        println!("条件为 true");
    } else {
        println!("条件为 false");
    }
}

和C语言类似,在上述程序中有条件 if 语句,但也有一些区别:1、条件表达式 number < 8 不需要用小括号包括(注意,不需要不是不允许);
2、Rust 中的 if 后面需要加 {} ,不允许使用一个语句代替一个块。

Rust 还是支持传统 else-if 语法的:

fn main() {
    let a = 12;
    let b;
    if a > 0 {
        b = 1;
    }  
    else if a < 0 {
        b = -1;
    }  
    else {
        b = 0;
    }
    println!("b is {}", b);
}

运行结果

b is 1

Rust 中的条件表达式必须是 bool 类型

例如下面的程序是错误的:

fn main() {
    let number = 4;
    if number {   // 报错,expected `bool`, found integerrustc(E0308)
        println!("Yes");
    }
}

虽然 C/C++ 语言中的条件表达式用整数表示,非 0 即真,但这个规则在很多注重代码安全性的语言中是被禁止的。

结合之前章学习的函数体表达式我们加以联想:

if <condition> { block 1 } else { block 2 } 

上面语法中的 { block 1 } 和 { block 2 } 可以是函数体表达式。
在 Rust 中我们可以使用 if-else 结构实现类似于三元条件运算表达式 (A ? B : C) 的效果:

实例

fn main() {
    let a = 3;
    let number = if a > 0 { 1 } else { -1 };
    println!("number 为 {}", number);
}

运行结果:

number 为 1

注意:两个函数体表达式的类型必须一样!且必须有一个 else 及其后的表达式块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文斗士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值