87 lines
1.9 KiB
Markdown
87 lines
1.9 KiB
Markdown
|
# break challenges
|
||
|
|
||
|
This guide will show you how to use a break statement within a while loop. #docs
|
||
|
|
||
|
### Challenge 0
|
||
|
|
||
|
Welcome! This [guided tutorial](/microbit/lessons/break/tutorial) will assist you with this activity.
|
||
|
|
||
|
```
|
||
|
count = 0
|
||
|
shouldBreak = false
|
||
|
input.onButtonPressed("A", () => {
|
||
|
shouldBreak = true
|
||
|
})
|
||
|
while (true) {
|
||
|
if (shouldBreak) {
|
||
|
basic.showString("I'M OUT!", 150)
|
||
|
images.createImage(`
|
||
|
# . . . #
|
||
|
# . . . #
|
||
|
. . # . .
|
||
|
# . . . #
|
||
|
. # # # .
|
||
|
`).showImage(0)
|
||
|
break
|
||
|
}
|
||
|
count = count + 1
|
||
|
basic.showNumber(count, 150)
|
||
|
basic.pause(1000)
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Challenge 1
|
||
|
|
||
|
Try to remove the `break` in the `if` loop. What problem does this create?
|
||
|
|
||
|
### Challenge 2
|
||
|
|
||
|
Now let's resume the timer again once button `B` is pressed! To do so, begin by creating a condition to know when button `B` is pressed.
|
||
|
|
||
|
```
|
||
|
// **. . .**
|
||
|
while (true) {
|
||
|
if (shouldBreak) {
|
||
|
basic.showString("I'M OUT!", 150)
|
||
|
break
|
||
|
}
|
||
|
count = count + 1
|
||
|
basic.showNumber(count, 150)
|
||
|
basic.pause(1000)
|
||
|
}
|
||
|
input.onButtonPressed("B", () => {
|
||
|
}) // ***
|
||
|
```
|
||
|
|
||
|
Next, set `shouldBreak` back to false to indicate we want to run the `while` loop again.
|
||
|
|
||
|
```
|
||
|
// **. . .**
|
||
|
input.onButtonPressed("B", () => {
|
||
|
shouldBreak = false // ***
|
||
|
})
|
||
|
```
|
||
|
|
||
|
And now copy the code from the previous while loop into the condition of `input->on button pressed("B")`. This will resume the counter.
|
||
|
|
||
|
```
|
||
|
// **. . .**
|
||
|
input.onButtonPressed("B", () => {
|
||
|
shouldBreak = false
|
||
|
while (true) {
|
||
|
if (shouldBreak) {
|
||
|
basic.showString("I'M OUT!", 150) // ***
|
||
|
break // ***
|
||
|
}
|
||
|
count = count + 1 // ***
|
||
|
basic.showNumber(count, 150) // ***
|
||
|
basic.pause(1000) // ***
|
||
|
}
|
||
|
})
|
||
|
```
|
||
|
|
||
|
### Challenge 3
|
||
|
|
||
|
Notice that the two `while` loops are identical. Clean up this redundancy in your code by creating another method and then placing the `while` loop in the method.
|
||
|
|