RUST语言流控制语句使用示例

1.判断语句

单条件判断:

rust 复制代码
let mut x=128;//声明一个32位整数
    x=512;//修改变量原来的值为新值
    //如果 ... 否则
    //判断变量x是否大于256
    if x>256 {
        println!("x>256,x={}",x);
    }else {
        println!("x<256,x={}",x);
    }

    let is_ok:bool = true;
    //rust中不用()
    if is_ok {
        println!("is_ok:{}",is_ok);
    }
    //使用表示式计算的值作为条件
    let a=1;
    if a !=0 {
        println!("条件成立!!!");
    }

多条件判断:

rust 复制代码
//多个条件判断
    let ret=123;
    if ret == 1 {
        println!("条件成立:{}",ret);
    }else if ret == 2 {
        println!("条件成立:{}",ret);
    }else if ret == 3 {
        println!("条件成立:{}",ret);
    }else {
        println!("条件不匹配:{}",ret);
    }

判断语句作为表达式使用:

rust 复制代码
//条件作为表达式使用
    let isRet = true;
    //整数使用
    let by_ret = if isRet { 123} else {456};
    //字符串使用,指向字符串地址
    let byStr:&str = if isRet { "Yes"} else {"No"};
    println!("Str:{},Ret:{}",byStr,by_ret);

2.循环语句

rust 复制代码
//循环条件
    let mut count:i8=0;
    //只输出10次
    loop {
        if count==10 {
            break;
        }
        println!("一直打印...");
        count +=1;
    }

循环语句作为表达式使用:

rust 复制代码
//循环作为块使用
    let mut tmp_count:i8=0;
    let mut tmpRet=0;
    //变量作为循环返回结果时不要指定类型
    let x5count = loop {
        //如果循环5次就退出循环
         if tmp_count == 5 {
             break;
         }
        //1*5 + 2*5 + 3*5 + 4*5 = 50
        tmpRet += tmp_count * 5; //每次乘5
        tmp_count+=1;
    };
    println!("tmpRet:{}",tmpRet);
复制代码
循环嵌套:
rust 复制代码
//循环嵌套
    let mut i=0;
    let mut j=0;
    //增加循环标志
    'out_loop: loop {
        i+=1;
        println!("i:{}",i);
        if i==10 { break; }
        loop {
            j+=1;
            if j==5 {
                break 'out_loop;//内循环跳出到外循环
            }
            println!("j:{}",j);
        }
    }

while循环:

rust 复制代码
//while循环使用
    let mut times = 5;
    while times >0 {
        println!("==={}",times);
        times-=1;
    }

for循环使用:

rust 复制代码
//for循环使用
    let arr = [1,2,3,4,5,6,7,8,9];
    //遍历数组
    for v in arr {
        println!("for循环:{}",v);
    }

    //范围遍历,反转
    for v in (1..21).rev()  {
        println!("for循环反转===:{}",v);
    }

完整示例代码:

rust 复制代码
fn main() {
    println!("RUST语言流控制");
    let mut x=128;//声明一个32位整数
    x=512;//修改变量原来的值为新值
    //如果 ... 否则
    //判断变量x是否大于256
    if x>256 {
        println!("x>256,x={}",x);
    }else {
        println!("x<256,x={}",x);
    }

    let is_ok:bool = true;
    //rust中不用()
    if is_ok {
        println!("is_ok:{}",is_ok);
    }
    //使用表示式计算的值作为条件
    let a=1;
    if a !=0 {
        println!("条件成立!!!");
    }
    //多个条件判断
    let ret=123;
    if ret == 1 {
        println!("条件成立:{}",ret);
    }else if ret == 2 {
        println!("条件成立:{}",ret);
    }else if ret == 3 {
        println!("条件成立:{}",ret);
    }else {
        println!("条件不匹配:{}",ret);
    }
    //条件作为表达式使用
    let isRet = true;
    //整数使用
    let by_ret = if isRet { 123} else {456};
    //字符串使用,指向字符串地址
    let byStr:&str = if isRet { "Yes"} else {"No"};
    println!("Str:{},Ret:{}",byStr,by_ret);

    //循环条件
    let mut count:i8=0;
    //只输出10次
    loop {
        if count==10 {
            break;
        }
        println!("一直打印...");
        count +=1;
    }

    //循环作为块使用
    let mut tmp_count:i8=0;
    let mut tmpRet=0;
    //变量作为循环返回结果时不要指定类型
    let x5count = loop {
        //如果循环5次就退出循环
         if tmp_count == 5 {
             break;
         }
        //1*5 + 2*5 + 3*5 + 4*5 = 50
        tmpRet += tmp_count * 5; //每次乘5
        tmp_count+=1;
    };
    println!("tmpRet:{}",tmpRet);

    //循环嵌套
    let mut i=0;
    let mut j=0;
    //增加循环标志
    'out_loop: loop {
        i+=1;
        println!("i:{}",i);
        if i==10 { break; }
        loop {
            j+=1;
            if j==5 {
                break 'out_loop;//内循环跳出到外循环
            }
            println!("j:{}",j);
        }
    }

    //while循环使用
    let mut times = 5;
    while times >0 {
        println!("==={}",times);
        times-=1;
    }

    //for循环使用
    let arr = [1,2,3,4,5,6,7,8,9];
    //遍历数组
    for v in arr {
        println!("for循环:{}",v);
    }

    //范围遍历,反转
    for v in (1..21).rev()  {
        println!("for循环反转===:{}",v);
    }
}

输出:

相关推荐
文丑颜不良啊19 分钟前
LeetCode1461~1480题目解析
java·leetcode
2301_780789668 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设9 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
ZhengEnCi9 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
步行cgn9 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川9 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵9 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David10 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas10010 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
Pniubi10 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展