区间作为条件判断的问题

codesnail 2011-10-14 11:17:34

arr=[1,2,3,4,5,6,7,8,9]

for i in arr
if (i>3 .. i>6)
print i
end
end


输出456789

我的理解应该是输出456啊,好像区间条件没起作用。。。。

ruby-1.92

谢谢。
...全文
220 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaabbb332244 2013-07-26
  • 打赏
  • 举报
回复
 (1..9).select {|i| print i," " if i==3...i==6 }
应该这样。 如果用
if (i>3 .. i>6)
条件的话,当i>6时打印i关闭状态机,然后下一个数肯定满足i>3状态机又会开启,会继续往下打印。
codesnail 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 leo55888 的回复:]

arr=[1,2,3,4,5,6,7,8,9]

for i in arr
if (i>3 .. i<6)
print i
end
end
[/Quote]
大哥,你真的实验了,这样可行?
codesnail 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 slowhand 的回复:]

没注意是ruby,想当然了,而且误导LZ了,在这里道个歉。对不起。
不会ruby,特地查了下,区间是这么用的吗?if( (4..6) === i )
[/Quote]
这个只是是否包含某一元素的判断。
Leo55888 2011-10-14
  • 打赏
  • 举报
回复
arr=[1,2,3,4,5,6,7,8,9]

for i in arr
if (i>3 .. i<6)
print i
end
end



APM60- 2011-10-14
  • 打赏
  • 举报
回复
没注意是ruby,想当然了,而且误导LZ了,在这里道个歉。对不起。
不会ruby,特地查了下,区间是这么用的吗?if( (4..6) === i )
codesnail 2011-10-14
  • 打赏
  • 举报
回复
我写的不是 i>3 and i>6 ......
codesnail 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 slowhand 的回复:]

要输出456,后边应该是 i<7 吧?
[/Quote]
书上说的是,后面的条件为true会关闭,也就是说应该是i>6

这个不是普通的条件判断,是区间条件判断。

另:证实一下,改成i<7 输出结果也是456789。。。。。。。。
APM60- 2011-10-14
  • 打赏
  • 举报
回复
要输出456,后边应该是 i<7 吧?
codesnail 2011-10-14
  • 打赏
  • 举报
回复
ls的意思我不明白,是不屑还是什么?再下愚钝请明示。
APM60- 2011-10-14
  • 打赏
  • 举报
回复
i>6
codesnail 2011-10-14
  • 打赏
  • 举报
回复
可能是新版ruby不支持此垃圾语法了,呵呵。

2,763

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ruby/Rails
社区管理员
  • Ruby/Rails社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧