ruby 三目运算符
Ruby运算符 (Ruby operators)
Operators are the symbols which assist compiler or interpreter to carry out certain mathematical, logical and relational tasks and produce the results. Operators are method calls with parameters.
运算符是帮助编译器或解释器执行某些数学,逻辑和关系任务并产生结果的符号。 运算符是带有参数的方法调用。
Ruby运算符的类型 (Types of Ruby operators)
Ruby supports a variety of operators but following are few of them:
Ruby支持多种运算符,但其中很少有:
Arithmetic operators
算术运算符
Comparison operators
比较运算符
Assignment operators
赋值运算符
Bitwise operators
按位运算符
1)算术运算符 (1) Arithmetic Operators)
They are mathematical methods that takes two parameters and perform arithmetic operations on them. Following is the list of arithmetic operators,
它们是采用两个参数并对它们执行算术运算的数学方法。 以下是算术运算符列表,
Symbol | Name | Description |
---|---|---|
+ | Addition | It Adds two provided values |
– | Subtraction | It Subtracts two given values |
/ | Division | Used to Divide left hand operand by right hand operand |
* | Multiplication | Used to multiply operands present on both the sides. |
% | Modulus | Gives remainder as result by dividing left hand side operand with the right hand side operand. |
** | Exponent | It is used to carry out power calculations on operands. |
符号 | 名称 | 描述 |
---|---|---|
+ | 加成 | 它添加两个提供的值 |
— | 减法 | 将两个给定值相减 |
/ | 师 | 用于将左操作数除以右操作数 |
* | 乘法 | 用于将两侧的操作数相乘。 |
% | 模量 | 通过将左侧操作数除以右侧操作数得到余数。 |
** | 指数 | 用于对操作数进行幂计算。 |
Example:
例:
puts "Enter first value"
num1 = gets.chomp.to_i
puts "Enter second value"
num2 = gets.chomp.to_i
add=num1+num2
puts "Sum is #{
add}"
sub=num1-num2
puts "Difference is #{
sub}"
mul=num1*num2
puts "Product is #{mul}"
div=num1/num2
puts "Division is #{
div}"
mod=num1%num2
puts "Remainder is #{mod}"
Output
输出量
Enter first value
10
Enter second value
3
Sum is 13
Difference is 7
Product is 30
Division is 3
Remainder is 1
2)比较运算符 (2) Comparison Operator)
They are a variant of binary operators which takes two operands and carry out comparison between them.
它们是二进制运算符的变体,它接受两个操作数并在它们之间进行比较。
Following is the list of comparison operators,
以下是比较运算符的列表,
Symbol | Description |
---|---|
== | It is used to check whether the two specified operands are equal or not. If yes, then condition becomes true. |
!= | When there is a need to check whether the values of operands are not equal to each other, then this operator is used. |
> | Used to check if the left hand side value is greater than right hand side operand, if yes then the condition becomes true. |
< | Used to check if the right hand side value is greater than left hand side operand, if yes then the condition becomes true. |
>= | Used to check if the left hand side value is greater than or equal to right hand side operand, if yes then the condition becomes true. |
<= | Used to check if the right hand side value is greater than or equal to left hand side operand, if yes then the condition becomes true. |
<=> | It returns 0 if first value is equal second value, 1 if first operand is greater than the second operand and -1 if first operand is less than the later one. |
.eql? | It returns true if the receiver and the arguments are of same data type and have equal values. |
.equal? | It returns true if the receiver and the arguments hail from same object id. |
符号 | 描述 |
---|---|
== | 用于检查两个指定的操作数是否相等。 如果是,则条件变为真。 |
!= | 当需要检查操作数的值是否彼此不相等时,将使用此运算符。 |
> | 用于检查左侧值是否大于右侧操作数,如果是,则条件变为true。 |
< | 用于检查右侧值是否大于左侧操作数,如果是,则条件为真。 |
> = | 用于检查左侧值是否大于或等于右侧操作数,如果是,则条件变为true。 |
<= | 用于检查右侧值是否大于或等于左侧操作数,如果是,则条件变为true。 |
<=> | 如果第一个值等于第二个值,则返回0;如果第一个操作数大于第二个操作数,则返回1;如果第一个操作数小于第二个操作数,则返回-1。 |
.eql? | 如果接收方和参数的数据类型相同且值相等,则返回true。 |
。等于? | 如果接收方和参数来自相同的对象ID,则返回true。 |
Example:
例:
puts "Enter first value"
num1 = gets.chomp.to_i
puts "Enter second value"
num2 = gets.chomp.to_i
if num1==num2
puts "Both are equal"
elsif num1>num2
puts "num1 is greater than num2"
elsif num1<num2
puts "num2 is greater than num1"
elsif num1!=num2
puts "num2 is not equal to num1"
elsif num1>=num2
puts "num1 is greater than or equals to num2"
elsif num1<=num2
puts "num2 is greater than or equals to num1"
end
Output
输出量
Enter first value
100
Enter second value
231
num2 is greater than num1
3)赋值运算符 (3) Assignment operators)
Assignment operators are used to assign the value of right hand side operator to the left hand side operator.
赋值运算符用于将右侧运算符的值分配给左侧运算符。
Following is the list of assignment operators which are supported in Ruby,
以下是Ruby支持的赋值运算符的列表,
Operator | Description |
---|---|
= | Used to assign right hand value to the left hand operand. |
+= | Adds left hand operand with the right hand operand and stores the result in left hand operand. |
-= | Subtracts right hand operand from the left hand operand and stores the result in left hand operand. |
*= | Multiplies left hand operand with the right hand operand and stores the product in left hand operand. |
%= | Used to find modulus by dividing and stores remainder in left hand operand. |
/= | Used to find division and stores result in left hand operand |
**= | Used to find exponential power and keeps the result in the left operand after computation. |
操作员 | 描述 |
---|---|
= | 用于将右手值分配给左手操作数。 |
+ = | 将左操作数与右操作数相加,并将结果存储在左操作数中。 |
-= | 从左侧操作数中减去右侧操作数,并将结果存储在左侧操作数中。 |
* = | 将左操作数与右操作数相乘,并将乘积存储在左操作数中。 |
%= | 用于通过除法求模并将余数存储在左操作数中。 |
/ = | 用于查找除法并将结果存储在左操作数中 |
** = | 用于查找指数幂并在计算后将结果保留在左操作数中。 |
Example:
例:
puts "Enter first value"
num1 = gets.chomp.to_i
puts "Enter second value"
num2 = gets.chomp.to_i
puts "Enter choice:"
ch = gets.chomp
case ch
when 'a'
num1+=1
puts "#{num1}"
when 'b'
num2-=2
puts "#{num2}"
when 'c'
num1*=2
puts "#{num1}"
when 'd'
num1**=9
puts "#{num1}"
else
puts "option not available."
end
Output
输出量
Enter first value
10
Enter second value
2
Enter choice:
c
20
4)按位运算符 (4) Bitwise operators)
They are used to perform bitwise operations on binary number which includes change of particular bit.
它们用于对二进制数执行按位运算,其中包括更改特定位。
Following is the list of bitwise operators which are supported by Ruby,
以下是Ruby支持的按位运算符列表,
Symbol | Name | Description |
---|---|---|
& | Binary AND | It works by copying a bit to the result if it is present in both the operands |
| | Binary OR | It works by copying a bit to the result if it is present in one of the operands. |
^ | Binary XOR | It works by copying a bit to the result if it is present in one of the operand but not in both. |
~ | Binary 1’s complement | It flips the bits like making 1 to 0 and vice versa. |
>> | Binary left shift | It shifts the bit to the left by number of bits told by the left operand. |
<< | Binary Right shift | It shifts the bit to the right by number of bits told by the right operand. |
符号 | 名称 | 描述 |
---|---|---|
和 | 二进制与 | 如果两个操作数中都存在一个位,则将其复制到结果中 |
| | 二进制或 | 它通过将一个位复制到结果(如果其中一个操作数中存在)来工作。 |
^ | 二进制异或 | 它通过将一个位复制到结果(如果在一个操作数中但在两个操作数中都不存在)来工作。 |
〜 | 二进制1的补码 | 它会将位翻转为1到0,反之亦然。 |
>> | 二进制左移 | 它将左边操作数告知左边操作数的位数。 |
<< | 二进制右移 | 它将右边的操作数告知右边的位数。 |
Example:
例:
puts "Enter first value"
num1 = gets.chomp.to_i
puts "Enter second value"
num2 = gets.chomp.to_i
a1=num1 & num2
puts "and is #{a1}"
a2=num1 | num2
puts "OR is #{a2}"
a3=num1^num2
puts "XOR is #{a3}"
a4= ~num2
puts "Complement is #{a4}"
a5=num1>>num2
puts "left shift is #{a5}"
a6=num1<<num2
puts "Right shift is #{a6}"
Output
输出量
Enter first value
3
Enter second value
5
and is 1
OR is 7
XOR is 6
Complement is -6
left shift is 0
Right shift is 96
ruby 三目运算符