查看: 1837|回复: 5

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

[复制链接]
梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
回帖
525
发表于 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)



梦石
8
星屑
4051
在线时间
1684 小时
注册时间
2010-10-22
回帖
1041

极短26参与极短25获奖

发表于 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年,你好,我的世界我的梦。
【大坑】异元-暗黑天际
【短25·不可阻挡】异元-地劫黎明
【短26·禁止】异元-禁忌之轮
回复

使用道具 举报

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 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技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

梦石
0
星屑
50
在线时间
112 小时
注册时间
2011-10-6
回帖
177
发表于 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~

查看全部评分

回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 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~

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
112 小时
注册时间
2011-10-6
回帖
177
发表于 2012-4-21 16:45:58 | 显示全部楼层
其实 i=0..2 这样赋值是可以的。0..2 是一个 Range 对象,像数组一样有迭代器。

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

点评

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部