Ruby条件机制

Ruby条件机制,ruby,if-statement,Ruby,If Statement,我正在学习ruby并复习基础知识。在使用条件句之后,我编写了以下代码: x = 10 z = 10 if x==10 && (puts "wow" if x == z) puts "hello" end 当我运行它时,我只得到“哇”。有人能解释一下为什么从来没有打印过“你好”吗 谢谢。因为放返回零: def test_method puts "test" end t = test_method #=> "test" p t #=> nil 这意味着如果x

我正在学习ruby并复习基础知识。在使用条件句之后,我编写了以下代码:

x = 10
z = 10
if x==10 && (puts "wow" if x == z)
  puts "hello"
end
当我运行它时,我只得到“哇”。有人能解释一下为什么从来没有打印过“你好”吗


谢谢。

因为
返回

def test_method
  puts "test"
end

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

这意味着
如果x==10&&nil
将被计算为
false
。因此,它永远不会进入条件并打印“hello”。put的返回值实际上为零

从本质上讲,该声明所说的是

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

nil
的值为
false
。只要条件中有false,表达式就会自动计算为false。因此,代码块将不会执行。

问问自己
put
返回什么,以及该结果将如何影响您的条件语句?除了您的问题之外,我不确定我是否理解您试图执行的操作。请注意,
(如果x==z,则放置“wow”)
如果
x!=10
。如果你想
put
“哇”如果
x==z
put
“你好”如果
x=10
z=10
,那么
如果x==z;把“哇”;如果x==10,则输入“hello”;结束
。我终于明白了:)。用
if x==10&&(p“wow”if x==z)
做了一个测试,我看到了“hello”,非常感谢你的回答。