# Loop - Break & Continue


According to the Go Specification, `break` and `continue` are [keywords](https://golang.org/ref/spec#Keywords).

```
break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var
```

`break` will _break out_ of a loop. It's a way to stop looping.

`continue` will move on to the next iteration. Let's see it in action.

*Aside* dividing and remainders

```go
package main

import (
	"fmt"
)

func main() {
	x := 83 / 40
	y := 83 % 40
	fmt.Println(x, y)
}

```

[playground](https://play.golang.org/p/_BNQa7c8d8)

*note*: `%` (modulo) is an [Arithmetic operator](https://golang.org/ref/spec#Arithmetic_operators) that gives the _remainder_.

Back to `continue` in action. Let's say we want to iterate from `1` through to `100`, and print out only the even numbers, we can use `for`, `if`, and `continue`

```go
package main

import (
	"fmt"
)

func main() {
	x := 0
	for {
		x++

		// break out of the loop (stop the loop)
		// if x is greater than 100
		if x > 100 {
			break
		}

		// continue to the next iteration if the
		// remainder of x divided by 2 is not 0
		// (if x is not even)
		if x%2 != 0 {
			continue
		}

		fmt.Println(x)

	}
	fmt.Println("done.")
}
```

[playground](https://play.golang.org/p/aVd3OVLtop)

