thp-web/md/learn/flow-control/loops.md

98 lines
960 B
Markdown
Raw Normal View History

2023-10-02 01:41:38 +00:00
# Loops
## For loop
Braces are required.
```thp
2024-02-20 10:17:21 +00:00
val numbers = [0, 1, 2, 3]
2023-10-02 01:41:38 +00:00
for number in numbers
{
print(number)
}
for #(index, number) in numbers.entries()
{
print("{index} => {number}")
}
```
```thp
2024-03-29 00:46:23 +00:00
val dict = .{
2024-01-01 14:11:41 +00:00
apple: 10,
banana: 7,
cherries: 3,
2023-10-02 01:41:38 +00:00
}
for #(key, value) in dict
{
print("{key} => {value}")
}
```
```thp
for value in collection
{
if condition
{
break
}
}
```
## While loop
```thp
2024-02-20 10:17:21 +00:00
val colors = ["red", "green", "blue"]
val mut index = 0
2023-10-02 01:41:38 +00:00
while index < colors.size()
{
2024-01-01 14:11:41 +00:00
print("{colors[index]}")
2023-10-02 01:41:38 +00:00
index += 1
}
```
## Infinite loop
2024-03-29 00:46:23 +00:00
Instead of doing `while true {}` use `loop`.
2023-10-02 01:41:38 +00:00
```thp
loop
{
print("looping")
if condition
{
break
}
}
```
2024-03-29 00:46:23 +00:00
## Labelled loops
You can give labels to loops, allowing you to `break` and `continue` in nested loops.
```thp
:top for i in values_1
{
for j in values_2
{
// ...
break :top
}
}
```
2023-10-02 01:41:38 +00:00