Ruby 比较运算符和逻辑运算符

Ruby 比较运算符

比较运算符 **比较** 两个值,并返回一个 布尔值 结果(truefalse)。例如,

a = 3
b = 2

puts a > b

# Output: true

在这里,我们使用 > 比较运算符来检查 a(值为 3)是否大于 b(值为 2)。

因为 3 大于 2,所以输出为 true

注意:在上面的例子中,a > b 被称为 **布尔表达式**,因为它计算结果为布尔值(truefalse)。


常用比较运算符

运算符 含义 示例
== 等于 3 == 5 (输出:false
!= 不等于 3 != 4 (输出:true
> 大于 4 > 4 (输出:false
< 小于 3 < 3 (输出:false
>= 大于或等于 4 >= 4 (输出:true
<= 小于或等于 3 <= 3 (输出:true
<=> 组合比较(返回 -101 5 <=> 10 (输出:-1

1. Ruby 等于运算符

等于运算符 == 的求值结果为

  • true - 如果操作数的值相等。
  • false - 如果操作数的值不相等。

注意:在 Ruby 中,== 是比较运算符,而 = 是赋值运算符。如果你错误地使用 = 代替 ==,可能会得到意外的结果。

示例

num1 = 10
num2 = 15
num3 = 10
string_num = "10"

# Compare numbers with numbers
puts num1 == num2   # false
puts num1 == num3   # true

# Compare number with string
puts num1 == string_num   # false

此程序的工作原理如下:

表达式 结果 原因
num1 == num2 false num1num2 的值不同。
num1 == num3 true num1num3 的值相同。
num1 == string_num false num1string_num 属于不同的数据类型,即使它们的值看起来相似。

比较不同类型

在 Ruby 中比较不同类型的数据。

在前面的示例中,使用 == 运算符比较数字 10 和字符串 "10" 的结果是 false,尽管这两个值看起来相似。

然而,在某些情况下,比较不同类型但数值相似的数据会得到 true。例如,

# Comparing identical integer and float values
puts 4 == 4.0

# Output: true

虽然 4 是一个 Integer(整数),而 4.0 是一个 Float(浮点数),但 Ruby 认为它们是相等的,因为它们的数值相同。


2. 不等于运算符

不等于运算符 != 的求值结果为

  • true - 如果操作数的值不相等。
  • false - 如果操作数的值相等。

示例

num1 = 10
num2 = 15
num3 = 10
string_num = "10"

# Compare numbers with numbers
puts num1 != num2   # true
puts num1 != num3   # false

# Compare number with string
puts num1 != string_num  # true

注意: != 运算符返回的结果与 == 运算符相反。


3. 大于运算符

大于运算符 > 的返回值

  • true - 如果左操作数大于右操作数。
  • false - 如果左操作数不大于右操作数。

示例

num1 = 10
num2 = 15

# Left operand is smaller
puts num1 > num2   # false

# Left operand is greater
puts num2 > num1   # true

# Both operands are equal
puts num1 > 10   # false

4. 大于等于运算符

大于或等于运算符 >= 的返回值

  • true - 如果左操作数大于或等于右操作数。
  • false - 如果左操作数小于右操作数。

示例

num1 = 10
num2 = 15

# Left operand is smaller
puts num1 >= num2   # false

# Left operand is greater
puts num2 >= num1   # true

# Both operands are equal
puts num1 >= 10   # true

5. 小于运算符

小于运算符 < 的返回值

  • true - 如果左操作数小于右操作数。
  • false - 如果左操作数不小于右操作数。

示例

num1 = 10
num2 = 15

# Left operand is smaller
puts num1 < num2   # true

# Left operand is greater
puts num2 < num1   # false

# Both operands are equal
puts num1 < 10   # false

6. 小于等于运算符

小于或等于运算符 <= 的返回值

  • true - 如果左操作数小于或等于右操作数。
  • false - 如果左操作数大于右操作数。

示例

num1 = 10
num2 = 15

# Left operand is smaller
puts num1 <= num2   # true

# Left operand is greater
puts num2 <= num1   # false

# Both operands are equal
puts num1 <= 10   # true

7. 组合比较运算符

组合比较 运算符 <=> 返回

  • -1,如果左操作数小于右操作数。
  • 1,如果左操作数大于右操作数。
  • 0,如果两个操作数相等。

注意: <=> 运算符也称为 **三向比较运算符**。

示例

num1 = 10
num2 = 15

# Left operand is smaller
puts num1 <=> num2   # -1

# Left operand is greater
puts num2 <=> num1   # 1

# Both operands are equal
puts num1 <=> 10   # 0

Ruby 逻辑运算符

逻辑运算符通过求值 boolean 表达式来返回一个 boolean 值。例如,

x = 5
y = 3

puts (x < 6) && (y < 5)

# Output: true

这里,&& 是逻辑运算符 **AND**(与)。

因为布尔表达式 x < 6y < 5 都为 true,所以使用 && 运算符计算它们也得到 true

常用逻辑运算符

运算符 语法 描述
&& expression1 && expression2 仅当 expression1expression2 都为 true 时为 true
|| expression1 || expression2 expression1expression2 中至少有一个为 true 时为 true
! !expression 如果 expressiontrue,则为 false;如果 expressionfalse,则为 true

1. 逻辑与运算符(&&)

逻辑 AND 运算符 && 当两个表达式都为 true 时返回 true。例如,

x = 2

# Both expressions are true
puts (x < 4) && (3 >= x)    # true

# Only one expression is true
puts (x <= 4) && (x == 3)   # false

# Both expressions are false
puts (x > 4) && (x == 3)   # false

程序工作方式如下:

表达式 结果 原因
(x < 4) && (3 >= x) true 两个表达式都为 true
(x <= 4) && (x == 3) false 表达式 x == 3false
(x > 4) && (x == 3) false 两个表达式都为 false

2. 逻辑或运算符( || )

逻辑 OR 运算符 || 当至少有一个表达式为 true 时返回 true。例如,

x = 2

# Both expressions are true
puts (x < 4) || (3 >= x)    # true

# Only one expression is true
puts (x <= 4) || (x == 3)   # true

# Both expressions are false
puts (x > 4) || (x == 3)   # false

程序工作方式如下:

表达式 结果 原因
(x < 4) || (3 >= x) true 两个表达式都为 true
(x <= 4) || (x == 3) true 表达式 x <= 4true
(x > 4) || (x == 3) false 两个表达式都为 false

3. 逻辑非运算符( ! )

逻辑 NOT 运算符 ! 当指定表达式为 false 时返回 true,反之亦然。例如,

x = 2

# NOT on true
puts !true   # false

# NOT on false
puts !false   # true

# Comparison examples
puts !(x > 3)   # true
puts !(x == 2)  # false

程序工作方式如下:

表达式 结果 原因
!true false !true 的值反转为 false
!false true !false 的值反转为 true
!(x > 3) true !(x > 3)false 值反转为 true
!(x == 2) false !(x == 2)true 值反转为 false

常见问题

Ruby 比较运算符和逻辑运算符有什么区别?

在 Ruby 中,我们使用比较运算符来比较两个值并找出结果的布尔值(truefalse)。例如,

# Less than operator
puts 4 < 5

# Output: true

在上面的例子中,我们使用 < 运算符来获取条件 4 < 5 的布尔值。

另一方面,我们使用逻辑运算符对 boolean 表达式执行逻辑运算。例如,

# Logical NOT
puts !(4 < 5)

# Output: false

这里,表达式 4 < 5 为我们提供了布尔值 true。然后 ! 运算符作用于此布尔值并将其反转为 false

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战