【 Rust 基础】控制流 —— Rust 的神级语法03

本文介绍了Rust编程语言中的控制流概念,包括独特的if表达式和三种循环结构:while条件循环、for循环以及无限循环loop。文章通过实例展示了Rust在控制流方面的特点和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

本来想写这玩意的,可是 Rust 在这些东西上还是可以玩出一些其它语言没有的花样的。

记录一下!

控制流

控制流 是一种控制程序运行的机制。像 C 语言中的 if、while 之类按一定的顺序排列程序元素来决定程序执行的顺序便是控制流。

理论都是抄来的……不管这些。

一、if 表达式

if 表达式允许根据条件执行不同的代码分支。

简单说就是,它会根据一个指定布尔值来决定是否执行某段代码。

fn main() {
    //问问程序,你帅不帅
    let is_handsome = true;
    println!("看这篇文章的小伙帅吗?");
    if is_handsome {
        println!("帅啊!")
    }else{
        println!("还不错!")
    }
}

输出:

看这篇文章的小伙帅吗?
帅啊!

在 Rust ,还可以这么操作:

fn main() {
    //问问程序,你帅不帅
    let is_handsome = true;
    println!("这小伙咋样?");
    let result:&str = if is_handsome {
        "这小伙还会这招,好帅啊!"
    }
    else {
        "还不错!"
    };
    println!("{}",result);
}

输出:

这小伙咋样?
这小伙还会这招,好帅啊!

二、循环结构

在 Rust 中,共有 三 种循环结构:whileforloop

1、while 条件循环

这个和其它语言类似,比如计算 1~100 的和:

fn main() {
    let mut sum = 0;
    let mut number = 1;
    const LIMIT:i32 = 100;
    
    while number <= LIMIT {
        sum += number;
        number +=1;
    }
    println!("1~100 的和为:{}",sum);
}

输出:

1~100 的和为:5050

Rust 估计是出于某种原因没有 C 语言一样的 for 循环(特指计次循环)。

2、for 循环

利用数组的遍历数组。有点像 C# 的 foreach 循环。

fn main() {
    let numbers = [1, 2, 3, 4, 5];

    for n in numbers.iter() {
        println!("{}", n);
    }
}

为啥要这样做,通过下标遍历不好吗?不要忘了,Rust 是一门追求安全的语言,编译器会增加运行时的代码来保证通过下标访问数组元素的安全性——确保下标不会越界访问数组。而且利用迭代器代码的适用性也变强了,如果给 numbers 再加上元素通过下标访问的代码就需要重新定义下标的最大大小了。

当然,两者互有不可替代性。

3、loop

一个“环”?没错,这相当于其他语言中所谓的 死循环( while(true) )。

但更简洁了不是?

use std::io::stdin;

fn main() {
    let mut reader = String::new();
    loop{
        println!("我帅吗?[Y/n]:");
        //读取结果
        stdin().read_line(&mut reader).expect("会不会打字啊!");
        //记得清除左右两边的玩意
        //也可以 reader == "Y\n"
        if reader.trim() == "Y"{
            break;
        }
    }
    println!("没那么好啦!");
}

——————

通过写博客掌握 Rust 的神级语法。

顺带丰富 Rust 资料……

二零二零年四月二十三日。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值