zoukankan      html  css  js  c++  java
  • Ruby跳出多层循环 catch...throw

    在编码的时候,有时候会遇到嵌套循环的情况,最内部的循环结束的时候,想跳出所有循环,这个时候我们往往采用通过内部循环设置一个flag来控制外部跳出循环条件,比如:

     1 #encoding:utf-8
     2 
     3 for i in (1..20) do
     4     flag = false
     5     puts "i = #{i}"
     6     for j in (40..60) do
     7         puts "j = #{j}"
     8         if(45 == j) then
     9             flag = true
    10             break
    11         end
    12     end
    13     if flag then
    14         break
    15     end
    16 end

    看一下打印结果

    1 i = 1
    2 j = 40
    3 j = 41
    4 j = 42
    5 j = 43
    6 j = 44
    7 j = 45

    代码这样运行是没有问题的,但是代码看起来比较臃肿,如果我们使用catch...throw的话可以简写这段代码,会清爽一些

     1 #encoding:utf-8
     2 catch :for_loop do
     3     for i in (1..20) do
     4         flag = false
     5         puts "i = #{i}"
     6         for j in (40..60) do
     7             puts "j = #{j}"
     8             if(45 == j) then
     9                 throw :for_loop
    10             end # if
    11         end # for
    12     end #for
    13 end #catch

    这样修改代码后,看起来是不是清爽了一些,运行结果仍然和上面一样。例子比较简单,希望对您有用!文笔很差,不足之处还请指出!非常感谢!

  • 相关阅读:
    四则运算测试脚本运行情况
    AAA
    (2015秋) 软工作业成绩公布(12月26号更新)
    判断闰年的Java算法
    B
    A
    Where Amazing Happens
    安利一发资料站
    C
    B
  • 原文地址:https://www.cnblogs.com/ouguangqian/p/deal_loop.html
Copyright © 2011-2022 走看看