Foundations
Loops
Repeat Actions
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.
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.
Sum of an array
Add up all the numbers in an array.
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?
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.
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.