220828-loop循环标签

Rust语法中有loop循环,并且提供了循环标签和消除歧义,《Rust编程语言设计》中是这么说的:

循环标签:在多个循环之间消除歧义
如果存在嵌套循环,break 和 continue 应用于此时最内层的循环。你可以选择在一个循环上指定一个 循环标签(loop label),然后将标签与 break 或 continue 一起使用,使这些关键字应用于已标记的循环而不是最内层的循环。

使用方式是单引号+标签名+冒号+loop ... ,如'counting_up,可以通过break +标签名来跳出标签的loop。

fn main() {
    let mut count = 0;
    println!("count = {count}");
    'counting_up: loop{
        let mut remaining = 10;
        loop {
            println!("remaining = {remaining}");
            if remaining == 6 {
                break;
            }
            if count == 5 {
                break 'counting_up;
            }
            remaining -= 1;
        }
        count += 1;
    }
    println!("count end.");
}

运行结果是:

> cargo run
   Compiling loop_test v0.1.0 (D:\Code\Rust\loop_test)
    Finished dev [unoptimized + debuginfo] target(s) in 0.36s
     Running `target\debug\loop_test.exe`
count = 0
remaining = 10
remaining = 9
remaining = 8
remaining = 7
remaining = 6
remaining = 10
remaining = 9
remaining = 8
remaining = 7
remaining = 6
remaining = 10
remaining = 9
remaining = 8
remaining = 7
remaining = 6
remaining = 10
remaining = 9
remaining = 8
remaining = 7
remaining = 6
remaining = 10
remaining = 9
remaining = 8
remaining = 7
remaining = 6
remaining = 10
count end.

是不是有些像goto,但是没goto那样自由到问题很多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值