Difference between revisions of "For"

From MiniScript Wiki
Jump to navigation Jump to search
Line 53: Line 53:
  
 
== Nested For Loops ==
 
== Nested For Loops ==
For loops can be nest inside one another the inner most loop will loop through all its iterations for every iteration the its outer loop has.
+
For loops can be nested inside one another; the inner most loop will loop through all its iterations for every iteration of the outer loop.
 
=== Example ===
 
=== Example ===
 
<ms>
 
<ms>
 
for i in range(1,2)
 
for i in range(1,2)
 
for j in range(3,4)
 
for j in range(3,4)
print val(i) + " + " + val(j) + " = " + val(i+j)
+
print val(i) + " * " + val(j) + " = " + val(i*j)
 
end for
 
end for
 
end for
 
end for
Line 65: Line 65:
 
'''outputs:'''
 
'''outputs:'''
  
1 + 3 = 4
+
1 * 3 = 3
  
1 + 4 = 5
+
1 * 4 = 4
  
2 + 3 = 5
+
2 * 3 = 6
  
2 + 4 = 6
+
2 * 4 = 8

Revision as of 12:59, 18 May 2022

for is a keyword used to loop over a sequence (i.e. a list, map, or string).

When to use for loops

A for loop is used when you want to repeat a block of code a fixed number of times. For loops in Miniscript utilize the for each construct. Instead of initializing a counter in the for loop statement the for each construct iterates a variable over a sequence, this mitigates the risk of creating an off by one error.

How to create for loops

For loops are created with the for keyword followed by element in sequence. This causes the element variable to be assigned each value of sequence in turn. Any string, list, or map may be used for the sequence, but a common idiom is to use the range intrinsic function to iterate over a numeric range. Other common options are to use the indexes intrinsic to iterate over the indexes of a sequence, or values to iterate over just the values of a map.

For loops are closed off with an end for keyword statement.

As a matter of style, all code to be repeated is usually indented in between the for and end for statements.

Iterate over a range of numbers

Example

for i in range(1,3)
    print i
end for

outputs:

1

2

3


Iterate over a list

Example

words = ["hello", "MiniScript", "wiki"]
for word in words
    print word
end for

outputs:

hello

MiniScript

wiki


Nested For Loops

For loops can be nested inside one another; the inner most loop will loop through all its iterations for every iteration of the outer loop.

Example

for i in range(1,2)
	for j in range(3,4)
		print val(i) + " * " + val(j) + " = " + val(i*j)
	end for
end for

outputs:

1 * 3 = 3

1 * 4 = 4

2 * 3 = 6

2 * 4 = 8