当前位置: 首页 > news >正文

010 Rust流程控制

条件语句

if-else

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

if-else if-else

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

Rust 中的条件表达式必须是 bool 类型,例如下面的程序是错误的:

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

C/C++ 语言中的条件表达式用整数表示,非 0 即真,但这个规则在Rust语言中是被禁止的。

循环语句

while循环

fn main() {let mut = 1;while != 5 {println!("{}", a);a += 1;}println!("EXIT");
}

for 循环
在Rust语言中没有像C++的for循环,如:

int i;
for (i = 0; i < 10; i++) {// 循环体
}

需要用 while 循环来代替:

fn main() {let mut i = 0 ;while i < 10 {// 循环体i += 1;}println!("{}", add(1,2));
}

for-in

fn main() {let a = [10, 20, 30, 40, 50];for i in a.iter() {  // a.iter 是迭代器println!("值为 : {}", i);}

当然,for 循环其实是可以通过下标来访问数组的:

fn main() {
let a = [100, 200, 300, 400, 500];for i in 0..5 {println!("a[{}] = {}", i, a[i]);}
}

运行结果:

a[0] = 100
a[1] = 200
a[2] = 300
a[3] = 400
a[4] = 500

loop 循环

fn main() {let a = [10, 20, 30, 40, 50, 60];let mut i = 0;let result = loop {let b = a[i];if b == 40 {break i;}        i += 1;};println!("i={}", result);
}

运行结果:

i=3

break类似于 return 一样使整个循环退出并给返回一个值。

http://www.dtcms.com/a/395286.html

相关文章:

  • MyBatisPlus快速入门:简化CRUD操作
  • 网络编程套接字(三)---简单的TCP网络程序
  • 背景建模(基于视频,超炫)项目实战!
  • ios26版本回退到ios18
  • OpenCV直方图比较:原理与四种方法详解
  • OpenCV - 图像金字塔
  • 寄存柜频繁维护还卡顿?杰和IB2-281主板:智能化升级高效省心
  • 海外短剧系统开发:多语言适配与跨地区部署的架构实践
  • JVM内存模型详解:看内存公寓如何分配“房间“
  • 【论文阅读】4D-VLA:时空视觉-语言-动作预训练与跨场景校准
  • 【论文阅读】MDM : HUMAN MOTION DIFFUSION MODEL
  • 【论文阅读】RynnVLA-001:利用人类示范改进机器人操作
  • Leecode hot100 - 105.从前序与中序遍历序列构造二叉树
  • 联邦学习论文分享:Federated Learning with GAN-based Data Synthesis for Non-IID Clients
  • 绕过百度网盘无限制下载
  • 【自记】PyCharm 更换阿里云国内源教程
  • 【Axure原型分享】区间K线图
  • javascript之Es6八股文
  • npm和pnpm命令大全
  • kali下安装beef-xss报错-启动失败-简单详细
  • 政策法规下的LLM安全:合规之路
  • 《第21课——C typedef:从Java的“实名制”到C的“马甲生成器”——类型伪装术与代码整容的艺术》
  • 【每天一个知识点】什么是知识库?
  • 豆包·Seedream 4.0深度测评:4K多模态时代的图像创作革命(图文增强版)
  • [新启航]发动机喷管推进剂输送孔光学 3D 轮廓测量 - 激光频率梳 3D 轮廓技术
  • 深入理解 TCP 协议:三次握手与四次挥手的底层原理
  • PyTorch 神经网络工具箱
  • 机器学习-多因子线性回归
  • 国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南
  • 08 - spring security基于jdbc的账号密码