• rust学习—— 不一样的break


    不一样的break

    先看一下其他语言的break

    javaScript

    break 语句可用于跳出循环。

    break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)

    for (i=0;i<10;i++)
    {
        if (i==3)
        {
            break;
        }
        x=x + "The number is " + i + "
    "
    ; }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    cpp-break

    C++ 中 break 语句有以下两种用法:

    当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
    它可用于终止 switch 语句中的一个 case。
    如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

    #include 
    using namespace std;
     
    int main ()
    {
       // 局部变量声明
       int a = 10;
    
       // do 循环执行
       do
       {
           cout << "a 的值:" << a << endl;
           a = a + 1;
           if( a > 15)
           {
              // 终止循环
              break;
           }
       }while( a < 20 );
     
       return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    python

    #!/usr/bin/python3
     
    for n in range(2, 10):
        for x in range(2, n):
            if n % x == 0:
                print(n, '等于', x, '*', n//x)
                break
        else:
            # 循环中没有找到元素
            print(n, ' 是质数')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    rust-break 特殊的地方

    rust的break除了具有普通break功能之外,还多了两个功能,一个是返回值 ,一个是跳到指定标签。

    返回值

    fn main() {
        let mut counter = 0;
    
        let result = loop {
            counter += 1;
    
            if counter == 10 {
                break counter * 2;
            }
        };
    
        println!("The result is {}", result);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果想把break counter * 2;改为return counter * 2;是不可以的。

    跳到指定标签

    fn main() {
        let mut count = 0;
        'counting_up: loop {
            println!("count = {}", count);
            let mut remaining = 10;
    
            loop {
                println!("remaining = {}", remaining);
                if remaining == 9 {
                    break;//---普通break
                }
                if count == 2 {
                    break 'counting_up;//特殊break
                }
                remaining -= 1;
            }
    
            count += 1;
        }
        println!("End count = {}", count);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    为什么要写测试用例,测试用例写给谁看?
    【手写一个SpringBoot简易版框架】
    【String类的常用方法】
    MFC耗时操作增加模态旋转等待对话框
    线上展厅优势
    【计算机网络面试题(62道)】
    紫外线杀菌器
    连流量染色都没有,你说要搞微服务?
    基于PHP+MySQL健身俱乐部系统的设计与实现
    驾辰龙跨Llama持Wasm,玩转Yi模型迎新春
  • 原文地址:https://blog.csdn.net/e891377/article/details/133903434