Kotlin
Java

# Practice with Loops and AlgorithmsJava

Created By: Geoffrey Challen
/ Updated: 2022-05-26

Next we'll pause to reinforce what we've learned about the basic building blocks of computer science: storing data, making decisions, and repeating operations. We'll also get some more practice with loops!

## Debugging Practice

Let's warm up with a bit of graded debugging practice.

## `continue`

Last time we discussed how we can exit a loop early using the `break` statement:

`break` causes the enclosing loopâ€”either `while` or `for`â€”to immediately exit, regardless of whether the loop condition is true or not.

`continue` is another control statement that we can use inside a loop. Let's explore how it works together!

So while `break` causes the loop to exit, `continue` causes the code to return to the top of the loop immediately, check the loop condition, and then continue if appropriate.

### `continue` versus `if`

`continue` is used less frequently than `break`. One of the reasons is that, we can always rewrite any loop that uses `continue` to instead use an `if` statement. Let's see how:

What's more clear: `continue` versus an `if` statement? It really depends on the problem. If the loop body is long and complicated, it can be better to use `continue` at the beginning to avoid values that shouldn't be considered by the rest of the loop. However, overall `continue` can make your code hard to read. So for shorter loops, it's usually better to just put the entire loop body inside an `if` statement instead.

## Counting Array Values

To get some additional practice, let's work through an example together that is similar to this lesson's homework. It also provides us a chance to practice with a very common array and loop programming pattern.

Given an array of values, how would we count the number of values that have some property? For example, let's say that we need to count the number of values which are greater than zero.

### Solution Outline

Let's work step-by-step. First, let's outline what we need to do.

### `for` Loop Setup

Next, let's get our loop set up! It's always a good idea to make sure that we can actually access all of the values in the array before doing anything more complicated.

### Testing Values Using `if`

As the third step, let's review how we determine if a value is greater than zero, and integrate that into what we have so far.

### Identifying a Design Pattern

Finally, let's examine the design pattern that emerges from this example: a combination of iteration (our `for` loop) and selection (our `if` statement). By combining these two and using different conditions and data, we can solve a lot of different problems! We can also combine results in different ways as well.

## Even and Odd

Before we wrap up, let's review one useful bit of Java that we'll use regularly during some of our upcoming examples: How to test whether a value is even or odd.