设为首页 收藏本站
登录 /立即注册 /找回密码

URPGs

快捷导航
  • 门户Portal
  • 论坛BBS
  • 群组Group
  • 导读Guide
  • 家园Space
  • 工具Tools
  • 广播Follow
  • 期刊Periodical
  • 排行榜Ranklist
  • 社区茶坊
  • pixlr图片编辑
  • 资源列表
  • photobucket
  • RMVA Lite [In English]
  • RM RTP
  • TryRUBY
  • RMXP+RMVX下载[VeryCD]
  • RMVA下载[66RPG]
搜索
  • 本版
  • 帖子
  • 用户
URPGs»论坛 › 技术讨论 › 教程 › RMVA从零学起 › 【基础第17课】RMVA从零学起-脚本-条件分歧 ...
返回列表 发新帖
查看: 9605|回复: 3

【基础第17课】RMVA从零学起-脚本-条件分歧

[复制链接]
Sonic1997
Sonic1997 当前离线
积分
212
查看详细资料 窥视卡 雷达卡
发表于 2013-4-3 11:02:23 | 显示全部楼层 |阅读模式
和之前事件一样=-=
脚本的条件分歧也有不同的条件...
== (等于) >= (以上) <= (以下) > (大于) < (小于)  != (不等于)
于是...
标准的数学符号就不解释了...
注意一下「=」和「==」是不同的...
「=」是用来赋值的而「==」是判断用的= =

条件分歧的第一种:
if...elsif...else...end
例子:[code=ruby]if a == 1
  p "a=1"
elsif a == 2
  p "a=2"
else
  p "idk what the hell is a"
end[/code]
其实elsif和else只是在有其他条件的情况下才用的,如果没有就可以不用
elsif和else后面并不是必须跟条件(这样的话就是「除了上面的条件以外」的意思了)

if还有一个用法:
[code=ruby]p "yes" if a == 10 #当a等于10的时候,显示yes,这是修飾子,下面的unless也一样[/code]

unless
这个就是在不满足条件时才执行的了
例子:
[code=ruby]unless a == 10
  p "100"
end[/code]

然后最后一个:
case ... when ... else ... end
case后面写变量名
when后面写条件
else就是「除了上面的条件以外」的意思

例子:
[code=ruby]case a
when 100
   p "a=100"
when 10
   p "a=10"
else
  p "so what is a?"
end[/code]

最后...
再补充一下两个符号:
[code=ruby]and #与
&& #与
or #或
|| #或[/code]

例子:[code=ruby]p a if a == 100 or a == 10[/code]

然后脚本暂告一段落QwQ~

木有作业= =

往下看补充


相关链接:
  • http://urpgs.com/thread-984-1-1.html - 下一课:RMVA从零学起-战斗前的准备
基础, 学

点评

satgo1546
好吧我搞错了。。我当是VX= =  发表于 2013-4-4 11:24

相关帖子

  • • 【基础第19课】RMVA从零学起-战斗I
  • • 【基础第18课】RMVA从零学起-战斗前的准备
  • • html终于学会基础了
  • • 【基础第16课】RMVA从零学起-脚本-变量
  • • 【基础第15课】RMVA从零学起-脚本-运算
  • • 【基础第14课】RMVA从零学起-脚本-让我们开始吧
  • • 【基础第13课】RMVA从零学起-条件分歧
回复

使用道具 举报

  • 提升卡
  • 置顶卡
  • 沉默卡
  • 喧嚣卡
  • 变色卡
  • 抢沙发
  • 千斤顶
  • 显身卡
satgo1546
satgo1546 当前离线
积分
201
查看详细资料 窥视卡 雷达卡
发表于 2013-4-3 18:14:52 | 显示全部楼层
我跑来补充了=w=

17.脚本-基础-条件分歧(补充)
# 我就是想吐槽原来的章节里说“游戏里不要出现p”什么的现在我第5次看到可爱的p了……
unless ~ end
unless也有修饰子(后缀表达式的另一种说法)用法。
[code=ruby]a = 0
p "Hello" unless a < 0[/code]
case ~ when ~ else ~ end
这里else也可省略。when后面的表达式是与case后的表达式做===运算。(对,你没看错,是===不是==
但是,对于Numeric实例来说,===的功能和==一样。(还是扯回去了
不过,对于Range实例就不是这样了。
【例子】 # 抄F1真好,但F1和我的代码风格不同= =
[code=ruby]age = 12
case age
when 0..2
  p "baby"
when 3..6
  p "little child"
when 7..12
  p "child"
when 13..18
  p "youth"
else
  p "adult"
end[/code]
并且when后面可以跟多个表达式,用半角逗号隔开。
【例子】
[code=ruby]a = 42
case a
when 40, 41, 42, 43 # case也可以只有一个when就结束
  msgbox "39<a<44" # 我就不用p,啦啦啦啦~
else
  msgbox "a>43 or a<40"
end[/code]
关于那两个符号
||和or、&&和and的优先级是不同的。 # 抄F1也是很爽的=w=
高
::
[]

**
-(单目运算符)  +(单目运算符)  !  ~
*  /  %
+  -
<< >>
&
|  ^
> >=  < <=
<=> ==  === !=  =~  !~
&&
||
..  ...
?:(条件演算子)
=(+=, -= ... )
低
not
and or
意思就是用&&或||请带括号= =

点评

Sonic1997
是不要出现 msgbox哦=w=  发表于 2013-4-3 22:07

评分

参与人数 1银币 +20 收起 理由
Sonic1997 + 20 ~

查看全部评分

回复 Like Dislike

使用道具 举报

  • 显身卡
圆寂丨不羁的风
圆寂丨不羁的风 当前离线
积分
0
查看详细资料 窥视卡 雷达卡
发表于 2013-6-22 03:17:17 | 显示全部楼层
p "yes" if a == 10 #当a等于10的时候,显示yes,这货好像叫做「后缀表达式」?

严格来说是比较表达式。a==b,a>=b,a<=b,a!=b ,是比较两者的大小。而单纯的a =b是赋值表达式。后缀表达式那些就涉及到栈操作和“遍历二叉树”顺序之类的思想。

评分

参与人数 1银币 +10 收起 理由
Sonic1997 + 10 感谢反馈=w=

查看全部评分

回复 Like Dislike

使用道具 举报

  • 显身卡
xiaojiahuo3
xiaojiahuo3 当前离线
积分
1
查看详细资料 窥视卡 雷达卡
发表于 2014-2-22 12:29:47 | 显示全部楼层
是不是应该提醒注意下||的使用,在(a||b)?c:d的时候,如果a为真的话,b的语句如果含有执行内容会被跳过的。
比如a=1,b=1,(a||b++)?……,a为真值,b++是不会被执行的,导致与预期不同。
(这是c的逻辑,不知道ruby通用不,反正我以前错过,就拿出来分享下)
回复 Like Dislike

使用道具 举报

  • 显身卡
返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|意见反馈[feedback]| URPGs RPG Maker 游戏制作讨论

GMT+8, 2025-5-9 14:51 , Processed in 0.026286 second(s), 10 queries .

Powered by Discuz! X3.5

© 2011-2019 URPGs (Discuz! X3.4 © 2001-2019 Comsenz Inc.)

积分 0, 距离下一级还需 积分
快速回复 返回顶部 返回列表