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);
    }
}

输出:

相关推荐
PAK向日葵1 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen3 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
地平线开发者4 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者4 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
没有bug.的程序员4 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋4 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
星星火柴9365 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
阿华的代码王国5 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端