设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3279|回复: 0
打印 上一主题 下一主题

RGSS入门——循环

[复制链接]

1013

主题

5

听众

2万

积分

返璞归真

不器用な星の瞬き

会员等级: 10

  • TA的每日心情
    无聊
    昨天 22:27
  • 签到天数: 1407 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23743
    历练
    3
    声望
    133
    人气
    2622

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2010-2-9 10:27:46 |只看该作者 |倒序浏览
    重复进行特定的处理就要使用循环

    while ~ end在满足特定条件期间进行循环的情况下使用 while 语句。

    a = 0              # 为变量 a 赋值代入 0。
    i = 1               # 为变量 i 赋值代入 1。
    while i <= 5     # 当变量 i 为 5 以下时循环开始(重复以下处理),
    a += i             #   变量 a 加上 i 的值。
    i += 1             #   变量 i 的值增加 1。
    end                # 循环结束。
    p a                 # 显示计算结果。

    这个示例是求从 1 到 5 这五个数字总和的程序。在这里,变量 i 是用来产生从 1 到 5 这五个数字用的。当然变量名也可以不用 i,一般情况下循环处理用的变量会使用 i、j、k 为名称。
    那么,这个程序最重要的是 i += 1 这行。如果没有这行 i 的值永远为 1,而 i <= 5 的条件也会一直满足,就会成为无限循环。因此,这里每次都向 i 加上 1 使得 i 的值依次变为 2、3、4、5、6 从而使得循环结束。
    变量 a 和 i 的数值变化,如下表所示。

    [/tr]
    循环a 的值i 的值
    初始状态01
    1 次后12
    2 次后33
    3 次后64
    4 次后105
    5 次后156
    循环 5 次后,在 a 的数值里面实际上进行了 1+2+3+4+5 的计算,i 的值也超过了 5 而执行 end 使得循环结束。
    然后以 p 命令显示最终 a 的值,就会显示出答案 15。
    变化范围数值的范围,例如类似于「从 1 到 5」这样的概念就称为变化范围
    1..5上述示例表示「从 1 到 5」的意思。使用 .. 运算符,就能作成一个变化范围。
    而且,使用 ... 运算符也可以。
    1...5和 .. 不同的是「不含最后一个数」。所以,这种情况实际上表示的是「从 1 到 4」的意思。

    for ~ in ~ end

    想在变化范围表示的范围内循环的情况下使用 for 语句。

    a = 0               # 为变量 a 赋值代入 0。
    for i in 1..5       # 变量 i 的值按从 1 到 5 的范围变化,
    a += i              #   变量 a 加上 i 的值。
    end                 # 循环结束。
    p a                 # 显示计算结果。
    这个示例和使用 while 语句的示例完全相同,也是求从 1 到 5 这五个数字总和的程序,但比使用 while 的情况更加简洁。在 while 中变量 i 加上 1 表示的是从 1 到 5 的范围,然而在 for 中是用变量 i 按「从 1 到 5 的范围」的顺序代入来表示。表面看起来不同,但实际上进行的是意思完全相同的处理。
    Ruby 中有许多语法,循环中也存在各种各样不同的方法。在不同语法使用中,请按照这个示例提示的「让编写更简便」的方式来思考。实际上,如果理解了条件分歧和循环的话,就能进行大部分逻辑运算了。

    loop do ~ end

    未指定循环次数和条件的情况下,也就是想进行无限循环时使用 loop 语句。这个与 while 和 for 语句的性质稍微有所不同,一般情况下没有必要注意。

    i = 0               # 为变量 i 赋值代入 0。
    loop do           # 循环开始。
    i += 1            #   变量 i 的值增加 1。  
    p i                  #   显示变量 i 的值。
    end                # 循环结束。

    这个示例是「一边把 i 的值加上 1,一边显示 i 的值」的程序,没有结束条件。一旦运行的话就会连续显示 1、2、3……。如果这种对话框不断显示的话,就算要结束程序也是不可能的,只能按着 F12 键不放强行关闭对话框,并点击右上方的结束按钮关闭程序。

    break

    想中途中断循环就要使用 break 命令。

    i = 0               # 为变量 i 赋值代入 0。
    loop do           # 循环开始。
    i += 1             #   变量 i 的值增加 1。  
    if i == 5          #   如果变量 i 的值为 5 的话,   
    break              #     中断循环。  
    end                 #   条件分歧结束。  
    p i                   #   显示变量 i 的值。
    end                 # 循环结束。

    上述示例在程序中加上了「i 等于 5 的就中断循环」的条件。运行该程序,显示 1、2、3、4 就结束了。
    break 即使在 while 和 for 等其它方法作成的循环中也能使用。

    next

    在不中断循环的情况下,跳过本次循环而进入下一次循环时使用 next 命令。
    for i in 1..5       # 变量 i 的值按从 1 到 5 的范围变化,
    if i == 3           #   如果变量 i 的值为 3 的话,   
    next                #     进入下一次循环。  
    end                 #   条件分歧结束。  
    p i                   #   显示变量 i 的值。
    end                 # 循环结束。
    运行这个示例,会显示 1、2、4、5。
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡
    您需要登录后才可以回帖 登录 | 加入我们

    手机版|Archiver|仙剑之十里坡 ( 苏ICP备11022766号 )  

    GMT+8, 2024-11-23 04:18 , Processed in 0.303050 second(s), 32 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部