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
- •
- •
- •
- •
- •