设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

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

RGSS入门——条件分歧

[复制链接]

1008

主题

5

听众

2万

积分

返璞归真

不器用な星の瞬き

会员等级: 10

  • TA的每日心情
    擦汗
    昨天 19:06
  • 签到天数: 1366 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23737
    历练
    3
    声望
    133
    人气
    2542

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

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2010-2-9 10:22:27 |只看该作者 |倒序浏览
    满足特定的条件与否,之后的动作会根据其不同而改变就叫作条件分歧
    比较运算符在具体地学习处理条件分歧的方法之前,要先记住条件构成中使用的运算符。
    下面 6 个运算符称为比较运算符。使用这些运算符,和给予的条件(数字和字符串)相比较,然后返回结果。
    ==相等
    !=不相等
    <小于
    >大于
    <=小于或相等[/td]
    >=大于或相等
    这里一定要注意的是,判断相等的运算符不是 = 而是 ==。像已学习过的那样,所谓 = 符号表示的不是比较而是代入。请注意不要弄混淆了。
    真伪值比较运算的运算结果就称为真伪值。有真(正确)、伪(错误)两种情况。
    比较后是正确的话为 true 值,是错误的话就为 false 值。请试试看吧。
    p ("早安" == "早安")                # => true
    p ("早安" == "晚安")                # => falsep
    (3 + 1 == 3 + 5)                  # => falsep
    (3 + 1 == 2 + 2)                  # => true
    逻辑运算符下面 6 个运算符称为逻辑运算符

    and
    &&
    「~,与,~」的意思
    or
    ||
    「~,或,~」的意思
    not
    !
    「非~」的意思
    英文单词运算符和符号运算符,无论用哪个都是一样的。在预置脚本中运用的主要是英文单词。使用这些逻辑运算符就能指定更加复杂的条件。

    p (100 > 77 and 1 + 1 == 2)         # => true
    p (100 > 77 && 1 + 1 == 2)          # => true

    上述示例中,第一行和第二行表示的都是一个内容「100 大于 77 同时 1 + 1 等于 2」。不用说 100 是比 77 大的整数,1 + 1 答案也为 2,两个运算都成立。所以输出结果就为 true(真,正确)。
    那么,看下一个算式吧。

    p (1 + 1 == 3 or 2 + 2 == 3)        # => false
    p (1 + 1 == 3 || 2 + 2 == 3)        # => false

    上述示例中,第一行和第二行表示的也都是一个内容「1 + 1 等于 3 或 2 + 2 等于 3」。很显然,1 + 1 不等于 3,2 + 2 也不等于 3,这样两个运算都不成立。比较运算符 or(||)是只要有一个运算成立就为 ture(真,正确),而这里两个运算全都不成立,所以输出结果就为 false(伪,错误)。

    另外,not(!)和上面的例子稍微有些不同, not(!)表示的内容为后面的条件不成立。可以理解为颠倒 true 或 false 的运算符。

    p (not true)                        # => false
    p (! true)                           # => false
    上述示例中的内容是「非 true」的意思,所以输出结果为 false。

    if ~ elsif ~ else ~ endif ~ end

    语句是条件分歧的句法。这个和英文的 if(如果~就)意思相同,表示「如果 if 后面的条件成立的话,就运行下面的处理」的意思。下面示例中的 3~5行就是条件分歧。

    a = 20              # 为变量 a 赋值代入 20。
    if a >= 10         # 如果 a 为 10 以上的话,  
    print "big"         #   显示 big。
    end                 # 分歧结束。

    在条件不满足时也要进行处理的情况下就使用 else,条件不满足但指定另一个条件的情况下就使用 elsif。

    a = 7               # 为变量 a 赋值代入 7。
    if a >= 10        # 如果 a 为 10 以上的话,  
    print "big"        #   显示 big。
    elsif a >= 5      # 除此之外,如果 a 为 5 以上的话,
    print "medium" #   显示 medium。
    else                # 其他,  
    print "small"    #   显示 small。
    end                # 分歧结束。

    unless ~ end与 if 相反,在条件满足时才进行某些处理的情况下使用 unless 语句。

    a = 7               # 为变量 a 赋值代入 7。
    unless a >= 10 # 如果 a 不为 10 以上的话,
    print "small"     #   显示 small。
    end                 # 分歧结束。

    case ~ end

    在条件为特定的变量值进行分歧的情况下使用 case 语句会更方便。

    a = 0              # 为变量 a 赋值代入 0。
    case a             # 分歧开始。
    when 0           #  当 a 为 0 时,  
    print "零"        #   显示 零。
    when 1           #  当 a 为 1 时,  
    print "壹"        #   显示 壹。
    when 2           #  当 a 为 2 时,  
    print "贰"        #   显示 贰。
    end                # 分歧结束。

    把第一行 a = 后面的 0 改为 1 和 2,然后再来看看分歧的结果吧。当 a 代入 1 时会显示“壹”,代入 2 时会显示“贰”。
    条件运算符使用符号 ? 和 : 也是运算符形式的条件分歧语句。

    a = 3
    p (a >= 10 ? "big" : "small")   # => "small"

    这个示例的意思是,变量 a 的值在 10 以上的话就显示 "big", 9 以下的话就显示 "small"。条件运算符的语法是「条件 ? 真时的值 : 伪时的值」。上述的条件是 a >= 10,真时的值为 "big",伪时的值为 "small",会根据条件是否满足来决定使用 ? 或 : 的值。

    当然使用 if 语句也能完成同样的事情。

    a = 3
    if a >= 10  p "big"
    else  
    p "small"end

    使用 if 语句的语法会像上面写的那样,但是使用条件运算符语句会更加简洁。该语句在当前的脚本中也使用得很多,所以最好事先记住。
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡
    您需要登录后才可以回帖 登录 | 加入我们

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

    GMT+8, 2024-5-5 19:49 , Processed in 0.554364 second(s), 32 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部