设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1644|回复: 5
打印 上一主题 下一主题

[已经解决] if 的循環方法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
跳转到指定楼层
1
发表于 2012-4-21 14:45:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sai90306 于 2012-4-21 14:53 编辑

請問如在腳本中進行if 的循環
例如

已知 a=5
if x>=0
b=a+1
if x>=1
b=a+2
if x>=2
b=a+3

當x=3的時候會執行a+1, a+2, a+3
當x=2的時候會執行a+1, a+2,
當x=1的時候會執行a+1

能夠將腳本"
if x>=0
b=a+1
if x>=1
b=a+2
if x>=2
b=a+3
"
用循環寫成精簡的一個 if句子 吗?

以下是我無腦想法...
a=5
i = 0..2 #這是不是錯了??
k=0
k=k+i

if x>= k
b=a+(1+k)



Lv3.寻梦者

梦石
0
星屑
2738
在线时间
1600 小时
注册时间
2010-10-22
帖子
1058
2
发表于 2012-4-21 15:33:11 | 只看该作者
  1. if x>=0
  2. b=a+1
  3. if x>=1
  4. b=a+2
  5. if x>=2
  6. b=a+3
复制代码
这个用 case 好一点吧?
  1. case x
  2. when 0
  3. b=a+1
  4. when 1
  5. b=a+2
  6. when 2
  7. b=a+3
  8. end
复制代码
如果用 if 的写法,应该是:
  1. if x>=0
  2.   b=a+1
  3. elsif x=1
  4.   b=a+2
  5. elsif x=2
  6.   b=a+3
  7. end
复制代码
至于
  1. i = 0..2
复制代码
这个,不能这样赋值的吧?应该用for的吧...
  1. for i in 0...2
复制代码
在F1基础篇关于循环的教程已经很详细了吧...

点评

沒錯...我想表達的是這樣才對!  发表于 2012-4-21 18:19
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
3
发表于 2012-4-21 15:43:52 | 只看该作者
  1. (0..2).each{|i|if x>=i then b=a+i+1 end}
复制代码

点评

學習了  发表于 2012-4-21 18:45
神触写法……  发表于 2012-4-21 15:56

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2011-10-6
帖子
182
4
发表于 2012-4-21 16:37:11 | 只看该作者

  1. for i in 0..2
  2.   if x>=i then b=a+i+1 end
  3. end
复制代码

点评

感謝!  发表于 2012-4-21 18:44

评分

参与人数 1星屑 +10 收起 理由
R-零 + 10 Candy~

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

5
发表于 2012-4-21 16:37:47 | 只看该作者
本帖最后由 hys111111 于 2012-4-21 16:43 编辑

注意,我看明白了。
写法应该这样:

  1. a = 5
  2. for i in 0..2
  3.   b=a+x+1 if x >= i
  4. end
复制代码
另外,for有循环的意思,
如果想在某个点循环结束,请在那个条件里面加“break”

点评

感謝!  发表于 2012-4-21 18:44

评分

参与人数 1星屑 +10 收起 理由
R-零 + 10 Candy~

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2011-10-6
帖子
182
6
发表于 2012-4-21 16:45:58 | 只看该作者
其实 i=0..2 这样赋值是可以的。0..2 是一个 Range 对象,像数组一样有迭代器。

但是楼主就暂时认为这是错误的吧,因为现在你理解起来比较困难,相比之下好好去看 for 的语法。

点评

了解!感謝解說  发表于 2012-4-21 18:47
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 10:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表