# While Repeat code in a loop while a condition is true. ### @parent js/language Repeat code while a [Boolean](/reference/types/boolean) `condition` is true. ### ~hide ``` let condition = false ``` ### ~ ### Block Editor ### Touch Develop ``` while (condition) { // This code runs if `condition` is `true` } ``` The while loop has a *condition* that evaluates to a [Boolean](/reference/types/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`. The condition is tested before any code runs. Which means that if the condition is false, the code inside the loop doesn't execute. Use the [break statement](/js/break) to exit a while loop before it's complete. ### 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`). // index is set to 4 ``` let index = 4 while (index >= 0) { led.plot(index, index) // // subtract 1 from `index` each time through loop index = index - 1 } ``` ### Example: count until A button pressed The following example shows numbers on the screen(0, 1, 2, 3...), until the "A" button is pressed. ``` let x = 0 while (true) { basic.showNumber(x, 100) let pressed = input.buttonIsPressed("A") if (pressed) { break } else { x = x + 1 } basic.pause(1000) } ``` ### Lessons [rotation animation](/lessons/rotation-animation), [digi yoyo](/lessons/digi-yoyo) ### See also [on button pressed](/reference/input/on-button-pressed), [for](/reference/loops/for), [if](/reference/logic/if), [break](/js/break), [forever](/reference/basic/forever), [in background](/reference/control/in-background)