# Concept: loops¶

## The for loop¶

The for-loop repeats -simplified- a command n times:

### Example¶

The following loop is executed 5 times:

for i in range(5):
print("I'm in a loop!")


The program gives the following output

I'm in a loop!
I'm in a loop!
I'm in a loop!
I'm in a loop!
I'm in a loop!


## The counter variable¶

You can use the variable i as a counter variable. It counts up (starting from 0):

### Example¶

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


The program gives the following output

0
1
2
3
4


## General form:¶

Generally written:

for i in range(max):
<codeblock>


or

for i in range(min, max):
<codeblock>


You can specify how many times the loop will be run or specify specific ranges:

### Examples: Drawing with loops¶

You can draw with loops:

from miniworldmaker import *

board = Board(200, 200)

for i in range(4):
Circle((20 + 50 * i, 50), 20)

board.run() ### Checkerboard pattern¶

With the module operator you can check if a result is divisible by 2, namely x divisible by 2 exactly if x % 2 == 0

This can be used to draw chessboard-like patterns by combining loops with an if query:

from miniworldmaker import *

board = Board(200, 50)

for i in range(4):
rect = Rectangle((50 * i, 0), 50, 50)
if i % 2 == 0:
rect.color = (255,0,0, 255)
else:
rect.color = (255, 255, 255, 255)

board.run() ### Graphs¶

Graphs can also be drawn in this way:

from miniworldmaker import *

board = Board(400, 400)

for x in range(400):
gl = 0.5*x + 50
y = 400 - gl
Point((x, y))

board.run() ### Nested loops¶

You can use nested loops to draw multidimensional patterns.

from miniworldmaker import *

board = Board(200, 200)

for i in range(4):
for j in range(4):
Circle((20 + 50 * i, 20 + 50 * j), 20)

board.run()
` 