You're grading 30 student exams. Instead of writing the same calculation 30 times, you use a loop: for each exam, calculate the percentage, record the grade. Same logic, applied to every item in your list.

Print each element

Visit every element in an array, one by one.

PrintAll.java
public class PrintAll {
    public static void main(String[] args) {
        int[] nums = {10, 20, 30, 40, 50};
        
        System.out.println("nums=" + java.util.Arrays.toString(nums));
        for (int i = 0; i < nums.length; i++) {
            int x = nums[i];
        }
    }
}

The loop runs once for each element. i is the index: 0, 1, 2, 3, 4.

for `for (init; condition; update)` - runs while condition is true.

Sum of an array

Add up all the numbers in an array.

Sum.java
public class Sum {
    public static void main(String[] args) {
        int[] nums = {10, 20, 30, 40, 50};
        
        System.out.println("nums=" + java.util.Arrays.toString(nums));
        int sum = 0;
        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }
    }
}

Start with sum = 0, then add each element one by one. This pattern is called an accumulator.

Count how many elements match

How many numbers are greater than 50?

Count.java
public class Count {
    public static void main(String[] args) {
        int[] nums = {35, 72, 48, 91, 56, 23, 88};
        
        System.out.println("nums=" + java.util.Arrays.toString(nums));
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > 50) {
                count = count + 1;
            }
        }
    }
}

Use a counter variable, increment it when condition is met.

Fibonacci with a loop

Generate Fibonacci numbers using a loop instead of writing each line.

Fibonacci.java
public class Fibonacci {
    public static void main(String[] args) {
        int n = ;
        int[] fib = new int[n];
        
        fib[0] = 0;
        fib[1] = 1;
        
        for (int i = 2; i < n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }
        
        System.out.println("fib=" + java.util.Arrays.toString(fib));
    }
}
public class Fibonacci {
    public static void main(String[] args) {
        int n = ;
        int[] fib = new int[n];
        
        fib[0] = 0;
        fib[1] = 1;
        
        for (int i = 2; i < n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }
        
        System.out.println("fib=" + java.util.Arrays.toString(fib));
    }
}
public class Fibonacci {
    public static void main(String[] args) {
        int n = ;
        int[] fib = new int[n];
        
        fib[0] = 0;
        fib[1] = 1;
        
        for (int i = 2; i < n; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }
        
        System.out.println("fib=" + java.util.Arrays.toString(fib));
    }
}

The loop pattern: each element depends on the previous two. Loops let us express this once, then repeat it as many times as needed.

while `while (condition)` - another way to loop, checks condition before each iteration.