Project1
标题:
if 的循環方法
[打印本页]
作者:
sai90306
时间:
2012-4-21 14:45
标题:
if 的循環方法
本帖最后由 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)
dsu_plus_rewardpost_czw
作者:
kangxi0109
时间:
2012-4-21 15:33
if x>=0
b=a+1
if x>=1
b=a+2
if x>=2
b=a+3
复制代码
这个用 case 好一点吧?
case x
when 0
b=a+1
when 1
b=a+2
when 2
b=a+3
end
复制代码
如果用 if 的写法,应该是:
if x>=0
b=a+1
elsif x=1
b=a+2
elsif x=2
b=a+3
end
复制代码
至于
i = 0..2
复制代码
这个,不能这样赋值的吧?应该用for的吧...
for i in 0...2
复制代码
在F1基础篇关于循环的教程已经很详细了吧...
作者:
Wind2010
时间:
2012-4-21 15:43
(0..2).each{|i|if x>=i then b=a+i+1 end}
复制代码
作者:
吉井明久
时间:
2012-4-21 16:37
for i in 0..2
if x>=i then b=a+i+1 end
end
复制代码
作者:
hys111111
时间:
2012-4-21 16:37
本帖最后由 hys111111 于 2012-4-21 16:43 编辑
注意,我看明白了。
写法应该这样:
a = 5
for i in 0..2
b=a+x+1 if x >= i
end
复制代码
另外,for有循环的意思,
如果想在某个点循环结束,请在那个条件里面加“break”
作者:
吉井明久
时间:
2012-4-21 16:45
其实 i=0..2 这样赋值是可以的。0..2 是一个 Range 对象,像数组一样有迭代器。
但是楼主就暂时认为这是错误的吧,因为现在你理解起来比较困难,相比之下好好去看 for 的语法。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1