2016-03-26 00:47:20 +01:00
# While
2016-06-15 13:55:19 +02:00
Repeat code while a [Boolean ](/blocks/logic/boolean ) `condition` is true.
2016-03-26 00:47:20 +01:00
2016-12-19 23:09:35 +01:00
```block
2016-05-19 22:56:24 +02:00
while(true) {
}
2016-03-26 00:47:20 +01:00
```
2016-06-15 13:55:19 +02:00
The while loop has a *condition* that evaluates to a [Boolean ](/blocks/logic/boolean ) value. After the `do` keyword, add the code that you want to run while the `condition` is `true` . The while loop concludes with `end while` .
2016-03-26 00:47:20 +01:00
The condition is tested before any code runs. Which means that if the condition is false, the code inside the loop doesn't execute.
### Example: diagonal line
The following example uses a while loop to make a diagonal line on the LED screen (points `0, 0` , `1, 1` , `2, 2` , `3, 3` , `4, 4` ).
2016-05-19 22:56:24 +02:00
```blocks
2016-12-19 23:09:35 +01:00
input.onButtonPressed(Button.A, () => {
let index = 4;
while(index >= 0) {
led.plot(index, index);
index--;
}
})
2016-05-19 22:56:24 +02:00
```
2016-03-26 00:47:20 +01:00
### See also
2016-06-14 23:20:45 +02:00
[on button pressed ](/reference/input/on-button-pressed ), [for ](/blocks/loops/for ), [if ](/blocks/logic/if ), [forever ](/reference/basic/forever )
2016-03-26 00:47:20 +01:00