How to resolve the algorithm Loops/Break step by step in the Ruby programming language
How to resolve the algorithm Loops/Break step by step in the Ruby programming language
Table of Contents
Problem Statement
Show a loop which prints random numbers (each number newly generated each loop) from 0 to 19 (inclusive).
If a number is 10, stop the loop after printing it, and do not generate any further numbers.
Otherwise, generate and print a second random number before restarting the loop.
If the number 10 is never generated as the first number in a loop, loop forever.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Loops/Break step by step in the Ruby programming language
Code 1:
- This code is an infinite loop that generates random numbers between 0 and 19.
- It prints each random number on a new line.
- If the random number is 10, the loop prints a newline and breaks out of the loop.
- If the random number is not 10, the loop generates another random number and prints it on the same line.
- The loop continues until a random number of 10 is generated.
Code 2:
- This code is also an infinite loop that generates random numbers between 0 and 19.
- It prints each random number on a new line.
- If the random number is 10, the loop prints a newline and breaks out of the loop using the
or breakstatement. - If the random number is not 10, the loop generates another random number and prints it on the same line.
- The loop continues until a random number of 10 is generated.
Comparison of the Two Codes:
The two codes have the same functionality, but they use different syntax to implement the loop.
- Code 1: Uses the
loopkeyword to define the infinite loop, and thebreakkeyword to exit the loop. - Code 2: Uses the
loop doshortcut to define the infinite loop, and theor breakstatement to exit the loop.
The or break statement is a shorthand way to write the following code:
if a == 10
puts
break
end
In Ruby, the or operator returns the value of its second operand if the first operand is false. In this case, the first operand is the condition a == 10, and the second operand is the break statement. If the condition is false (i.e., a is not 10), the or operator returns nil. However, if the condition is true (i.e., a is 10), the or operator returns the value of the break statement, which is to break out of the loop.
Performance Considerations:
Both codes have the same time complexity, which is O(1), as they both terminate after generating a random number of 10. However, code 2 may be slightly faster, as it uses a shortcut (or break) to exit the loop, while code 1 uses a separate break statement.
Source code in the ruby programming language
loop do
a = rand(20)
print a
if a == 10
puts
break
end
b = rand(20)
puts "\t#{b}"
end
loop do
print a = rand(20)
puts or break if a == 10
puts "\t#{rand(20)}"
end
You may also check:How to resolve the algorithm Map range step by step in the Ruby programming language
You may also check:How to resolve the algorithm Range expansion step by step in the Ruby programming language
You may also check:How to resolve the algorithm Tau function step by step in the Ruby programming language
You may also check:How to resolve the algorithm Keyboard input/Keypress check step by step in the Ruby programming language
You may also check:How to resolve the algorithm HTTPS/Authenticated step by step in the Ruby programming language