Ruby条件机制

时间:2016-06-21 14:22:19

标签: ruby if-statement

我正在学习ruby并完成基础知识。在玩了条件后,我做了以下代码:

x = 10
z = 10
if x==10 && (puts "wow" if x == z)
  puts "hello"
end

当我跑步时,我只有“哇”。有人可以解释为什么“hello”从未打印过吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

因为puts返回nil

def test_method
  puts "test"
end

t = test_method #=> "test"
p t #=> nil

这意味着if x==10 && nil将被评估为false。因此它永远不会进入条件并打印“你好”。

答案 1 :(得分:3)

puts的返回值实际上是零。

基本上,声明所说的是

if x==10 && nil
  puts "hello"
end

nil的值为false。只要条件中出现错误,表达式就会自动评估为false。因此,代码块将不会被执行。