Why Loops?
Loops are an essential and beginner-friendly aspect of iteration
in programming. To iterate means to repeat a process until an outcome is produced. So when do we use iteration in programming, besides in foreach
loops for collections?
While Loops
While loops have 2 fundamental pieces: a statement with a Boolean value and a block of code to be executed. We give a while loop to evaluate this conditional statement, and while the statement is FALSE, the loop will run everything we wrote in the block of code underneath. The set up looks like this:
var condition: Boolean = true
while (condition == true) {
// do stuff
// eventually condition should change to false
}
Once the statement we’ve given the while loop is false in value, the loop stops itself. In this case, condition == true
will evaluate to FALSE when the condition we created earlier isn’t true. Keep in mind that a loop can run infinitely if we write it poorly, so make sure that your condition is manipulated in some way in your for loop to ensure that it will end eventually.
Here’s a good example of a while loop to start with:
var incrementer: Int = 0
while (incrementer < 10) {
print("$incrementer ")
incrementer++ // same as incrementer = incrementer + 1
}
We create a variable called incrementer and initialize it to 0. Next, we run a while loop that checks if the incrementer
is less than 10 repetitively. While it is less than 10, the block underneath increments incrementer
until it equals 10. The following prints out to the console as a result:
0 1 2 3 4 5 6 7 8 9
do...while
loops work in the same way, except the block of code is run before the statement is evaluated.
var incrementer: Int = 0
do {
print("$incrementer ")
incrementer++
} while (incrementer < 10)
The console will print the same output in this case.
For with Range
To iterate over a range of values, we can use a for loop using the in
function. Here’s an example:
for (i in 0..5) println(i)
This prints out the following:
0
1
2
3
4
5
The range is INCLUSIVE, which means that i starts at 0 and ends at 5.
To iterate backwards, we add on the downTo
keyword:
for (i in 3 downTo 1 step 1) print("$i ")
The console prints out 3 2 1
as a result. The step
keyword indicates the amount incremented or decremented every time. We can modify the step
value as well:
for (i in 10 downTo 1 step 2) print("$i ")
This will print 10 8 6 4 2
to the console.
See More
-
Nested for Each in Kotlin - Baeldung - This one covers some really good best practices and how we can use
flatMap
to deal with many situations with nested loops.
Comments