×

Ruby Tutorial

Ruby Basics

Ruby Control Statements

Ruby Methods

Ruby Classes and Methods

Ruby Arrays

Ruby Sets

Ruby Strings

Ruby Classes & Objects

Ruby Hash

Ruby Tools

Ruby Functions

Ruby Built-in Functions

Misc.

Ruby Programs

Ruby Operators

By IncludeHelp Last updated : November 16, 2024

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 supports a variety of operators but following are few of them:

  1. Arithmetic operators
  2. Comparison operators
  3. Assignment operators
  4. Bitwise operators

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. Comparison Operators

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.

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. 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,

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. 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,

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.

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

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.