# 9.6. Worked Example: Arrays - Minimum Value¶

Subgoals for Evaluating Arrays

Set up array from 0 to size-1

Evaluate data type of statements against array

Trace statements, updating slots as you go

Remember assignment subgoals

You can watch this video or read through the content below it.

Problem: Assume that the integer array `alpha`

has been properly declared and is full of data values. Evaluate these statements and determine the value of `min`

. If any error occurs, give the reason.

```
int min = alpha[0];
for (int i = 1; i < alpha.length; i++) {
if (alpha[i] < min)
min = alpha[i];
}
```

SG1: Set up array from 0 to size-1

alpha is an array of ints and has values, but we don’t know what those values are

however, we can still diagram a representation of this array

notice that the largest index is size - 1

SG2: Evaluate data type of statements against array

The first statement, `int min = alpha[0]`

, is valid because `alpha`

stores integers, and 0 is a valid index. You can assign an int value to an int variable such as `min`

.

```
for (int i = 1; i < alpha.length; i++) {
if (alpha[i] < min)
min = alpha[i];
}
```

This loop has index i go from 0 to size - 1 (<length) by increments of 1.

Then the value at alpha[i] is compared to min. If the value at alpha[i] is less than min, then alpha[i] is copied into min.

All indexes into the array are valid, and all assignments are valid.

SG3: Trace statements, updating slots as you go

Let us trace with a sample array.

The first line of the code sample initializes `min`

to copy the value from `alpha[0]`

, which in our sample is 12, and then a for-loop is used to traverse the array. The chart below uses one line to represent the memory and calculations during each iteration of the loop, starting when i has a value of zero.

We can see that each time a smaller value is located in the array, that value is stored in `min`

.

The more general answer to the original question is: “`min`

contains the smallest value found in the array `alpha`

.”

Practice Pages