Ruby编程:条件语句与方法详解
1. 深入理解Ruby比较运算符
在Ruby中,比较运算符有着比表面更复杂的作用。我们将探讨其效果、副作用,以及在满足特定条件时如何跳出代码块。
2. 布尔运算符
Ruby提供了用于测试表达式的布尔运算符,其结果可能为真或假。使用替代布尔运算符时需格外小心,因为优先级的差异会导致条件评估顺序不同,从而产生不同的结果。
以下是示例代码:
# Example 1
if ( 1==3 ) and (2==1) || (3==3) then
puts('true')
else
puts('false')
end
# Example 2
if ( 1==3 ) and (2==1) or (3==3) then
puts('true')
else
puts('false')
end
乍一看,这两个示例似乎相同,但实际上,示例1输出 “false”,而示例2输出 “true”。这是因为 or 的优先级低于 || 。示例1测试的是 “如果1等于3 [假] 且 (2等于1或3等于3) [真]”,由于两个必要条件之一为假,整个测试返回假。示例2测试的是 “(如果1等于3且2等于1) [假] 或 3等于3 [真]”,只要两个测试之一成功即可,第二个测试为真,所以整个测试返回真。
为避免运算符优先级带来的副作用导致的隐晦错误,可使用括号明确测试的含义。以下是修改后的代码:
Ruby条件语句与方法解析
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



