Ruby/Flow Control
Overview
editBy the end of this lesson you should be able to:
- Use dot-times-loop.
- Use while and until loops.
- Use if.
Loops
editFirst of all, you should know what a loop is. Therefore, I will tell you:
A loop is the thing you use, when you want to do something again and again. For example, let's say that you wanted to greet five persons: Peter, Jones, Bill, Sophie and Anne. In ruby you would write:
# puts is same as print, but appends a newline. puts "Hello, Peter" puts "Hello, Jones" puts "Hello, Bill" puts "Hallo, Sophie" # I've typed 'Hallo' not 'Hello' puts "Hello, Anne"
But, whith a loop you could write:
["Peter", "Jones", "Bill", "Sophie", "Anne"].each do |name| puts "Hello, #{name}" end
Which gives the same, but without any typos--much smarter. So, lets learn something about loops:
The dot-times loop
editI don't really know what you call this one, but dot-times is a good name, isn't? Anyways, this is used like:
5.times do print "Again and " end
This will print:
Again and Again and Again and Again and Again and
Not perfect but still, the idea is there, right? So, now I am supposed to tell you how that works... and I will, in a moment, but first let's get something clear. The do and ends makes a block, a block is some code that is sticked together. The dot means that we want to do something with the number 5. And the times is what we want to do with the number. Everything that is inside the do and the end is a block. And what is in the block will be executed each time the loop runs.
The while loop
editRuby can also do while-loops. While loops are found in many other programming languages. They are a bit of an old programming tradition. An example:
count = 0 while count < 5 print 'The count is now ', count, '. ' count = count + 1 end
Result: The count is now 0. The count is now 1. The count is now 2. The count is now 3. The count is now 4.
The until loop
editThe until loop is a variation on the while loop.
count = 0 until count == 5 print 'The count is now ', count, '. ' count = count + 1 end Result: same as above.
Pay attention to the double equal signs. In Ruby and many other programming languages a == 5 means Compare a to 5, and a = 5 means Make a point to a value of 5.
If
editRuby call also execute code only if certain conditions are met, this is the 'if' function. For example:
if(count == 5) print 'The count is equal to five' end
What this means is really "if count is equal to five the execute this code." this will also work with other mathematical operators.
else
edit'else' is another part of the 'if' function this will execute if the 'if' condition(s) are not met. For example:
if(count == 5) print 'The count is equal to five' else print 'The count is not equal to five' end
elsif
edit'elsif' is a variation on the 'else' function it is really a contraction of the 'else' and 'if' functions
if(count == 5) print 'The count is equal to five' else if(count < 5) print 'The count is less than five' end end
The above code can be modified to do the same thing with the 'elsif' function
if(count == 5) print 'The count is equal to five' elsif(count < 5) print 'The count is less than five' end
This code will do the same as the first piece but it is shorter and tidier than the first peice