forever
Keep running part of a program
in the background.
basic.forever(() => {
})
You can have part of a program continuously by placing it in an forever loop. The forever loop will yield to the other code in your program though, allowing that code to have time to run when needs to.
Event-based loops
Both the forever loop and the every loop are event-based loops where the code inside is run as part of a function. These are different from the for and while loops. Those are loops are part of the programming language and can have break and continue statements in them.
You can NOT use break or continue in either a forever loop or an every loop.
Examples
Example: compass
The following example constantly checks the
compass heading
and updates the screen with the direction.
let degrees = 0
basic.forever(() => {
degrees = input.compassHeading()
if (degrees < 45) {
basic.showString("N")
} else if (degrees < 135) {
basic.showString("E")
} else if (degrees < 225) {
basic.showString("S")
} else if (degrees < 315) {
basic.showString("W")
} else {
basic.showString("N")
}
})
Example: counter
The following example keeps showing the number stored in a global variable.
When you press button A
, the number gets bigger.
You can use a program like this to count things with your Calliope mini.
let num = 0
basic.forever(() => {
basic.showNumber(num)
})
input.onButtonEvent(Button.A, input.buttonEventClick(), () => {
num = num + 1
})
Competing for the LED screen
If different parts of a program are each trying
to show something on the LED screen at the same time,
you may get unexpected results.
Try this on your Calliope mini:
basic.forever(() => {
basic.showNumber(6789)
})
input.onButtonEvent(Button.A, input.buttonEventClick(), () => {
basic.showNumber(2)
})
See also
while, in background, every