knowledge-kitchen / course-notes

Loops - For

Unlike while loops, which are most often used to repeat the execution of a block of code an indefinite number of times, for loops are usually used to execute a block of code a fixed finite number of times. Each repetition is called an iteration.

Iterating through a series of numbers

The following examples all repeat a print statement 6 times in order to print the numbers from 5 to 10, inclusive.

Python example

This example uses the range function to generate the list of values to loop through.

for i in range(5,11):
    print(i)

Java example

for (int i = 5; i <= 10; i++) {
    System.out.println(i);
}

Javascript example

for (var i = 5; i <= 10; i++) {
  console.log(i)
}

PHP example

for ($i = 5; $i <= 10; $i++) {
    print($i);
}

Iterating through a characters in a string

The following examples all repeat a print statement 9 times in order to print the characters in the string, 'asparagus'.

Python example

s = "asparagus"

for c in s:
    print(c)

Java example

String s = "asparagus";

for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    System.out.println(c);
}

Javascript example

var s = "asparagus"

for (var i = 0; i < s.length; i++) {
  var c = s.charAt(i)
  console.log(c)
}

PHP example

$s = "asparagus";

for ($i = 0; $i < strlen($s); $i++) {
    $c = $s{$i};
    print($c);
}

Iterating through a values in a list or array

The following examples all repeat a print statement 5 times in order to output each of the following values: 'they', 'sailed', 'away', 'in', 'a', 'sieve', 'they', 'did'.

Python example

list_of_values = [ 'they', 'sailed', 'away', 'in', 'a', 'sieve', 'they', 'did' ]

for s in values:
    print(s)

Java example

String[] list_of_values = { "they", "sailed", "away", "in", "a", "sieve", "they", "did" };

for (int i = 0; i < list_of_values.length; i++) {
    System.out.println(list_of_values[i]);
}

Java has an "enhanced" for loop that can loop through elements in an array with more syntactic sugar:

String[] list_of_values = { "in", "a", "sieve", "they", "went", "to", "sea" };

for (String value : list_of_values) {
    System.out.println(value);
}

Javascript example

var list_of_values = [
  "they",
  "sailed",
  "away",
  "in",
  "a",
  "sieve",
  "they",
  "did",
]

for (var i = 0; i < list_of_values.length; i++) {
  console.log(list_of_values[i])
}

PHP example

$list_of_values = array( 'they', 'sailed', 'away', 'in', 'a', 'sieve', 'they', 'did' );

for ($i = 0; $i < sizeof($list_of_values); $i++) {
    print($list_of_values[$i]);
}

Ranges in Python

The built-in range() function in Python automatically generates a range of integer values. This is a useful function if you want to iterate through a preset list of integers.

There are several sets of arguments you can supply to this function to customize this list.

Single argument

range(10) #generates a range of values starting from 0 up to 9, like [0,1,2,3,4,5,6,7,8,9]

Example usage:

for i in range(10):
    print(i)

Two arguments

range(3, 10) #generates a range of values starting from 3 up to 9, like [3,4,5,6,7,8,9]

Example usage:

for i in range(3, 10):
    print(i)

Three arguments

Going forwards

range(20, 30, 2) #generates a range of values stepping by 2's, like [20, 22, 24, 26, 28]

Example usage:

for i in range(20, 30, 2):
    print(i)

Going backwards:

range(30, 20, -2) #generates a range of values from 30 down to 22, stepping down by 2's, like [30, 28, 26, 24, 22]

Example usage:

for i in range(30, 20, -2):
    print(i)