zoukankan      html  css  js  c++  java
  • Ruby自学笔记(六)— 循环

    循环结构在编程语言中是不可或缺的,所以Ruby中的循环也有其自定义的规则。

    而我们关注循环结构,要知道两个因素:1) 循环的条件;2) 循环执行的内容

    Ruby有一些方式来实现循环结构体

    1. times方法

    在前面已经有提到过了,语法如下:

    循环次数.times do                     循环次数.times {
          重复执行的动作                          重复执行的动作               
    end                                               }
    
    也可以在times模块中加入变量
    5.times { |i|
        print "This is the", i+1, " time. 
    "
    }
    
    # i变量是从0开始计算的

    2. for 语句

    语法:
    for 变量 in 开始数值..结束数值 do
       反复执行的动作
    end
    
    # do是可以省略的
    
    from = 0
    to = 20
    sum = 0
    for i in from..to
       sum += 1
    end
    
    语法:
    for 变量 in 对象
      反复执行的动作
    end
    
    names = ["Windy", "Cindy", "Jack", "Hugo"]
    for name in names
       print name, " likes Ruby. 
    "
    end

    第二个语法的for语句,与java中的for each语句非常类似,for (i in list?) {...}

    3. while 语句

     while语句与JAVA中也是类似的

    语法:
    while 条件 do
       反复执行的动作
    end
    
    a = 1
    sum = 0
    while a < 10 do
       sum += a
       i += a
    end

    4. until 语句
    其语法与while语句类似,只是只有条件不符合的时候,才会反复执行循环

    语法:
    until 条件 do
        反复执行的动作
    end
    # do可以省略
    
    sum = 0
    until sum > 50 
       sum += 1
    end
    print sum
    
    # 以上until循环可以转换成下面的while循环
    while !(sum > 50) 
       sum += 1
    end

    5. each 方法
    在前面已经提到过这个方法了,这里就简要记录下语法

    对象.each { |变量|

         想要反复执行的动作

    }

    6. loop方法

    它是一种没有结束条件的方法,只是不断进行循环处理,示例如下:

    loop {
       print "Ruby"
    }


    循环的控制:

    主要有如下关键字:break,next,redo;而在java中,则有break,continue,return

           命令 用途
    break 停止动作,马上跳出循环
    next 直接跳到下一个循环
    redo 以相同的条件重新执行这一次循环

    总结:当次数固定时,使用times方法比较好,而其他大部分循环几乎都可以使用while和each方法。

  • 相关阅读:
    [LeetCode] 88. Merge Sorted Array
    [LeetCode] 73. Set Matrix Zeroes
    [LeetCode] 70. Climbing Stairs(斐波那契数列)
    [LeetCode] 65. Valid Number(多个标志位)
    [LeetCode] 57.Insert Interval
    [CCF] 201612-2 工资计算
    手脱Aspack变形壳1
    手脱FSG v1.33
    手脱PEncrypt 4.0
    手脱JDPack
  • 原文地址:https://www.cnblogs.com/windy1118/p/RubyLearning6.html
Copyright © 2011-2022 走看看