6.2

Traversing Arrays

AP Computer Science A

Standard for loop traversal

java
int[] scores = {95, 87, 73, 91, 88};

for (int i = 0; i < scores.length; i++) {
    System.out.println(scores[i]);
}

Anatomy of the traversal

Reading vs. modifying elements

Reading (just printing or using values)

java
int[] temps = {72, 68, 75, 80, 77};
int sum = 0;

for (int i = 0; i < temps.length; i++) {
    sum += temps[i];  // reading each value
}
System.out.println("Total: " + sum);  // Total: 372

Modifying (changing values in the array)

java
int[] prices = {100, 200, 150, 300};

// Apply 10% discount to all prices
for (int i = 0; i < prices.length; i++) {
    prices[i] = (int)(prices[i] * 0.9);
}
// prices is now {90, 180, 135, 270}

Traversal variations

Backward traversal

java
String[] letters = {"A", "B", "C", "D", "E"};

for (int i = letters.length - 1; i >= 0; i--) {
    System.out.print(letters[i] + " ");
}
// Output: E D C B A

Every other element

java
int[] nums = {10, 20, 30, 40, 50, 60};

for (int i = 0; i < nums.length; i += 2) {
    System.out.print(nums[i] + " ");
}
// Output: 10 30 50

Partial traversal

java
int[] data = {5, 12, 8, 3, 17, 9, 2};

// Only process the first 3 elements
for (int i = 0; i < 3; i++) {
    System.out.print(data[i] + " ");
}
// Output: 5 12 8

Traversal with a condition

java
int[] scores = {95, 62, 87, 45, 73, 91, 58};

// Count scores that are passing (>= 70)
int passing = 0;
for (int i = 0; i < scores.length; i++) {
    if (scores[i] >= 70) {
        passing++;
    }
}
System.out.println(passing + " students passed");  // 4 students passed

Building a result string

java
String[] names = {"Alice", "Bob", "Carol"};
String result = "";

for (int i = 0; i < names.length; i++) {
    result += names[i];
    if (i < names.length - 1) {
        result += ", ";
    }
}
System.out.println(result);  // Alice, Bob, Carol

Trace table: doubling even numbers

java
int[] arr = {3, 8, 5, 12, 7};

for (int i = 0; i < arr.length; i++) {
    if (arr[i] % 2 == 0) {
        arr[i] *= 2;
    }
}

Adjacent element comparison

java
int[] temps = {72, 68, 75, 80, 77};

// Find where temperature dropped
for (int i = 1; i < temps.length; i++) {
    if (temps[i] < temps[i - 1]) {
        System.out.println("Drop at index " + i + ": " 
            + temps[i - 1] + " → " + temps[i]);
    }
}
// Output: Drop at index 1: 72 → 68
//         Drop at index 4: 80 → 77

Passing arrays to methods

java
public static void doubleAll(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        arr[i] *= 2;
    }
}

public static void main(String[] args) {
    int[] nums = {1, 2, 3, 4};
    doubleAll(nums);
    // nums is now {2, 4, 6, 8} — the original was modified!
}

Returning arrays from methods

java
public static int[] createMultiples(int base, int count) {
    int[] result = new int[count];
    for (int i = 0; i < count; i++) {
        result[i] = base * (i + 1);
    }
    return result;
}

// Usage
int[] threes = createMultiples(3, 5);
// threes = {3, 6, 9, 12, 15}

Complete example: Grade curve

java
public class GradeCurve {
    public static int findMax(int[] grades) {
        int max = grades[0];
        for (int i = 1; i < grades.length; i++) {
            if (grades[i] > max) {
                max = grades[i];
            }
        }
        return max;
    }
    
    public static void applyCurve(int[] grades) {
        int max = findMax(grades);
        int curve = 100 - max;
        
        for (int i = 0; i < grades.length; i++) {
            grades[i] += curve;
        }
    }
    
    public static void main(String[] args) {
        int[] grades = {78, 92, 65, 88, 71};
        
        System.out.println("Before curve:");
        for (int i = 0; i < grades.length; i++) {
            System.out.println("  Student " + (i + 1) + ": " + grades[i]);
        }
        
        applyCurve(grades);
        
        System.out.println("After curve (+8):");
        for (int i = 0; i < grades.length; i++) {
            System.out.println("  Student " + (i + 1) + ": " + grades[i]);
        }
    }
}
Before curve:
  Student 1: 78
  Student 2: 92
  Student 3: 65
  Student 4: 88
  Student 5: 71
After curve (+8):
  Student 1: 86
  Student 2: 100
  Student 3: 73
  Student 4: 96
  Student 5: 79

AP Exam Tips

Common Mistakes

Key Vocabulary