Conditions:
Ruby offers conditional structures that are pretty common to modern languages. Here, we will explain all the conditional statements and modifiers available in Ruby.Ruby if...else Statement:
Syntax:
if conditional [then] code... [elsif conditional [then] code...]... [else code...] endif expressions are used for conditional execution. The values false and nil are false, and everything else are true. Notice Ruby uses elsif, not else if nor elif.
Executes code if the conditional is true. If the conditional is not true, code specified in the else clause is executed.
An if expression's conditional is separated from code by the reserved word then, a newline, or a semicolon.
Example:
#!/usr/bin/ruby x=1 if x > 2 puts "x is greater than 2" elsif x <= 2 and x!=0 puts "x is 1" else puts "I can't guess the number" end
x is 1
Ruby if modifier:
Syntax:
code if conditionExecutes code if the conditional is true.
Example:
#!/usr/bin/ruby $debug=1 print "debug\n" if $debugThis will produce the following result:
debug
Ruby unless Statement:
Syntax:
unless conditional [then] code [else code ] endExecutes code if conditional is false. If the conditional is true, code specified in the else clause is executed.
Example:
#!/usr/bin/ruby x=1 unless x>2 puts "x is less than 2" else puts "x is greater than 2" endThis will produce the following result:
x is less than 2
Ruby unless modifier:
Syntax:
code unless conditionalExecutes code if conditional is false.
Example:
#!/usr/bin/ruby $var = 1 print "1 -- Value is set\n" if $var print "2 -- Value is set\n" unless $var $var = false print "3 -- Value is set\n" unless $varThis will produce the following result:
1 -- Value is set 3 -- Value is set
Ruby case Statement
Syntax:
case expression [when expression [, expression ...] [then] code ]... [else code ] endCompares the expression specified by case and that specified by when using the === operator and executes the code of the when clause that matches.
The expression specified by the when clause is evaluated as the left operand. If no when clauses match, case executes the code of the else clause.
A when statement's expression is separated from code by the reserved word then, a newline, or a semicolon.
Thus:
case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 endis basically similar to the following:
_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end
Example:
#!/usr/bin/ruby $age = 5 case $age when 0 .. 2 puts "baby" when 3 .. 6 puts "little child" when 7 .. 12 puts "child" when 13 .. 18 puts "youth" else puts "adult" endThis will produce the following result:
little child
Loops:
Loops in Ruby are used to execute the same block of code a specified
number of times. This chapter details all the loop statements supported
by Ruby.
If a while modifier follows a begin statement with no rescue or ensure clauses, code is executed once before conditional is evaluated.
If an until modifier follows a begin statement with no rescue or ensure clauses, code is executed once before conditional is evaluated.
Ruby while Statement:
Syntax:
while conditional [do] code endExecutes code while conditional is true. A while loop's conditional is separated from code by the reserved word do, a newline, backslash \, or a semicolon ;.
Example:
#!/usr/bin/ruby $i = 0 $num = 5 while $i < $num do puts("Inside the loop i = #$i" ) $i +=1 endThis will produce the following result:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4
Ruby while modifier:
Syntax:
code while condition OR begin code end while conditionalExecutes code while conditional is true.
If a while modifier follows a begin statement with no rescue or ensure clauses, code is executed once before conditional is evaluated.
Example:
#!/usr/bin/ruby $i = 0 $num = 5 begin puts("Inside the loop i = #$i" ) $i +=1 end while $i < $numThis will produce the following result:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4
Ruby until Statement:
until conditional [do] code endExecutes code while conditional is false. An until statement's conditional is separated from code by the reserved word do, a newline, or a semicolon.
Example:
#!/usr/bin/ruby $i = 0 $num = 5 until $i > $num do puts("Inside the loop i = #$i" ) $i +=1; endThis will produce the following result:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4 Inside the loop i = 5
Ruby until modifier:
Syntax:
code until conditional OR begin code end until conditionalExecutes code while conditional is false.
If an until modifier follows a begin statement with no rescue or ensure clauses, code is executed once before conditional is evaluated.
Example:
#!/usr/bin/ruby $i = 0 $num = 5 begin puts("Inside the loop i = #$i" ) $i +=1; end until $i > $numThis will produce the following result:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4 Inside the loop i = 5
Ruby for Statement:
Syntax:
for variable [, variable ...] in expression [do] code endExecutes code once for each element in expression.
Example:
#!/usr/bin/ruby for i in 0..5 puts "Value of local variable is #{i}" endHere, we have defined the range 0..5. The statement for i in 0..5 will allow i to take values in the range from 0 to 5 (including 5). This will produce the following result:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5A for...in loop is almost exactly equivalent to:
(expression).each do |variable[, variable...]| code endexcept that a for loop doesn't create a new scope for local variables. A for loop's expression is separated from code by the reserved word do, a newline, or a semicolon.
Example:
#!/usr/bin/ruby (0..5).each do |i| puts "Value of local variable is #{i}" endThis will produce the following result:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
Ruby break Statement:
Syntax:
break
Terminates the most internal loop. Terminates a method with an
associated block if called within the block (with the method returning
nil).Example:
#!/usr/bin/ruby for i in 0..5 if i > 2 then break end puts "Value of local variable is #{i}" endThis will produce the following result:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2
Ruby next Statement:
Syntax:
next
Jumps to next iteration of the most internal loop. Terminates execution of a block if called within a block (with yield or call returning nil).Example:
#!/usr/bin/ruby for i in 0..5 if i < 2 then next end puts "Value of local variable is #{i}" endThis will produce the following result:
Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
Ruby redo Statement:
Syntax:
redo
Restarts this iteration of the most internal loop, without checking loop condition. Restarts yield or call if called within a block.Example:
#!/usr/bin/ruby for i in 0..5 if i < 2 then puts "Value of local variable is #{i}" redo end endThis will produce the following result and will go in an infinite loop:
Value of local variable is 0 Value of local variable is 0 ............................
Ruby retry Statement:
Syntax:
retry
If retry appears in rescue clause of begin expression, restart from the beginning of the 1begin body.begin do_something # exception raised rescue # handles error retry # restart from beginning endIf retry appears in the iterator, the block, or the body of the for expression, restarts the invocation of the iterator call. Arguments to the iterator is re-evaluated.
for i in 1..5 retry if some_condition # restart from i == 1 end
Example:
#!/usr/bin/ruby for i in 1..5 retry if i > 2 puts "Value of local variable is #{i}" endThis will produce the following result and will go in an infinite loop:
Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 ............................
No comments:
Post a Comment