推荐答案
在 Ruby 中,逻辑运算符用于组合或反转布尔表达式。常用的逻辑运算符包括 &&(逻辑与)、||(逻辑或)和 !(逻辑非)。
逻辑与 (&&)
- 用法:
expression1 && expression2 - 解释: 只有当
expression1和expression2都为true时,整个表达式才返回true。如果expression1为false,则不会计算expression2(短路求值)。
逻辑或 (||)
- 用法:
expression1 || expression2 - 解释: 只要
expression1或expression2中有一个为true,整个表达式就返回true。如果expression1为true,则不会计算expression2(短路求值)。
逻辑非 (!)
- 用法:
!expression - 解释: 反转
expression的布尔值。如果expression为true,则返回false;如果expression为false,则返回true。
本题详细解读
逻辑与 (&&) 示例
a = true b = false puts a && b # 输出 false,因为 b 为 false
逻辑或 (||) 示例
a = true b = false puts a || b # 输出 true,因为 a 为 true
逻辑非 (!) 示例
a = true puts !a # 输出 false,因为 a 为 true
短路求值
逻辑与 (
&&): 如果第一个表达式为false,则不会计算第二个表达式。// www.javascriptcn.com code example def method1 puts "method1 called" false end def method2 puts "method2 called" true end puts method1 && method2 # 输出 "method1 called" 和 false
逻辑或 (
||): 如果第一个表达式为true,则不会计算第二个表达式。// www.javascriptcn.com code example def method1 puts "method1 called" true end def method2 puts "method2 called" false end puts method1 || method2 # 输出 "method1 called" 和 true
优先级
- 逻辑非 (
!) 的优先级高于逻辑与 (&&) 和逻辑或 (||)。 - 逻辑与 (
&&) 的优先级高于逻辑或 (||)。
a = true b = false c = true puts a || b && c # 输出 true,因为 b && c 先计算,结果为 false,然后 a || false 结果为 true
结合性
- 逻辑与 (
&&) 和逻辑或 (||) 都是左结合的,即从左到右依次计算。
a = true b = false c = true puts a && b || c # 输出 true,因为 a && b 先计算,结果为 false,然后 false || c 结果为 true