KotlinCS 124 LogoJava
PrevIndexNext
Kotlin
Java
  • Implementing a Map : 04/26/2024

  • Streams : 04/25/2024

  • Generics : 04/24/2024

  • Hashing : 04/23/2024

  • Binary Search : 04/22/2024

  • MP3: Course Ratings : 04/19/2024

  • Quicksort : 04/18/2024

  • Merge Sort : 04/17/2024

  • Sorting Algorithms : 04/16/2024

  • MP Debugging Part 1 : 04/15/2024

  • MP2: Course Activity : 04/12/2024

  • Practice with Recursion : 04/11/2024

  • MP Debugging Part 0 : 04/10/2024

  • MP2: API Client : 04/09/2024

  • MP2: API Server : 04/08/2024

  • Trees and Recursion : 04/05/2024

  • Trees : 04/04/2024

  • Recursion : 04/03/2024

  • MP1: Filtering and Search : 04/02/2024

  • MP1: Loading and Sorting : 04/01/2024

  • Lists Review and Performance : 03/29/2024

  • Linked Lists : 03/28/2024

  • Algorithms and Lists : 03/27/2024

  • Continuing MP0 : 03/26/2024

  • Getting Started with MP0 : 03/25/2024

  • Lambda Expressions : 03/22/2024

  • Anonymous Classes : 03/21/2024

  • Practice with Interfaces : 03/20/2024

  • Implementing Interfaces : 03/19/2024

  • Using Interfaces : 03/18/2024

  • Working with Exceptions : 03/08/2024

  • Throwing Exceptions : 03/07/2024

  • Catching Exceptions : 03/06/2024

  • References and Polymorphism : 03/05/2024

  • References : 03/04/2024

  • Data Modeling 2 : 03/01/2024

  • Equality and Object Copying : 02/29/2024

  • Polymorphism : 02/28/2024

  • Inheritance : 02/27/2024

  • Data Modeling 1 : 02/26/2024

  • Static : 02/23/2024

  • Encapsulation : 02/22/2024

  • Constructors : 02/21/2024

  • Objects, Continued : 02/20/2024

  • Introduction to Objects : 02/19/2024

  • Compilation and Type Inference : 02/16/2024

  • Practice with Collections : 02/15/2024

  • Maps and Sets : 02/14/2024

  • Lists and Type Parameters : 02/13/2024

  • Imports and Libraries : 02/12/2024

  • Multidimensional Arrays : 02/09/2024

  • Practice with Strings : 02/08/2024

  • null : 02/07/2024

  • Algorithms and Strings : 02/06/2024

  • Strings : 02/05/2024

  • Functions and Algorithms : 02/02/2024

  • Practice with Functions : 02/01/2024

  • More About Functions : 01/31/2024

  • Errors and Debugging : 01/30/2024

  • Functions : 01/29/2024

  • Practice with Loops and Algorithms : 01/26/2024

  • Algorithms : 01/25/2024

  • Loops : 01/24/2024

  • Arrays : 01/23/2024

  • Compound Conditionals : 01/22/2024

  • Conditional Expressions and Statements : 01/19/2024

  • Operations on Variables : 01/18/2024

  • Variables and Types : 01/17/2024

  • Welcome to CS 124 : 01/16/2024

Loops

for (int i = 0; i < 8; i++) {
System.out.println("Hi!");
}

This lesson presents the final core computer capability: the ability to repeat something multiple times. By combining this with our ability to store and manipulate data and make decisions, we can truly solve any problem. So let’s get started!

Warm Up Debugging Challenge
Warm Up Debugging Challenge

Let’s warm up with another graded debugging challenge!

while
while

Let’s meet our first loop. It’s the simplest one in Java, and repeats a block of code while a condition is true:

int i = 0;
while (i < 8) {
i++;
}

The while loop declaration looks quite similar to the if statements we’ve already seen. First the keyword while, followed by a conditional expression inclosed in parantheses, followed by a block. However, unlike the if statement which only executes once, the while statement continues to execute the block as long as the condition evaluates to true. This can cause problems!

int i = 0;
while (i < 8) {
i++;
}

for
for

While while is the simplest loop, probably the most common loop you’ll encounter is called a for loop. It’s more complicated than a while loop, but designed to capture a common loop programming pattern. We frequently want to use a loop to increment a variable starting at zero and ending when it reaches some value. (We’ll see why tomorrow.)

int i = 0;
while (i < 8) {
System.out.println(i);
}

This is so common that Java provides a second loop that captures this pattern. Let’s go through it together:

for (int i = 0; i < 8; i++) {
System.out.println(i);
}

Variants
Variants

The for loop syntax is quite flexible and can produce lots of different sequences of values in the index variable:

// Starting at 8, ending at 88, up by 10
for (int i = 8; i < 88; i += 10) {
System.out.println(i);
}
// Starting at 16, ending at 0, down by 4
for (int i = 16; i >= 0; i -= 4) {
System.out.println(i);
}

We can also omit one, two, or all three of the parts of a for loop declaration:

for (int i = 0; i < 8;) {
System.out.println(i);
i++;
}
int i = 0;
for (;i < 8;) {
System.out.println(i);
i++;
}
// There's no stopping us now...
for (;;) {
System.out.println("Sweet!");
}

However, by far the most common for loop you’ll see is the start at 0, increment by 1, and end when the value is strictly less than some limit:

int limit = 16;
for (int i = 0; i < limit; i++) {
System.out.println(i);
}

Loop Variable Scope
Loop Variable Scope

There is one important difference between this while loop:

int i = 0;
while (i < 8) {
i++;
}

and this for loop:

for (int i = 0; i < 8; i++) {
}

Let’s try and figure out what it is!

int i = 0;
while (i < 8) {
i++;
}

Practice: Victory Loop

Created By: Geoffrey Challen
/ Version: 2020.8.0

Let's write a simple loop. Assuming an int variable named repeat has been declared and initialized to a value larger than or equal to zero, write a loop that prints "Victory!" repeat times on separate lines. You may use any kind of loop you want! But do not modify the value of repeat.

for v. while
for v. while

Let’s explore the connection between the two types of loop using a diagram.

Practice: Number Loop

Created By: Geoffrey Challen
/ Version: 2021.8.0

Let's write a simple loop. Assuming an int variable named count has been declared and initialized to a value larger than zero, write a loop that prints the numbers between 0 and count - 1, inclusive, one number each line. So if count is 4, you should print:

0
1
2
3

You can use any kind of loop you want! But do not modify count.

Homework: Descending Number Loop

Created By: Geoffrey Challen
/ Version: 2022.8.0

Let's write a simple loop. Assuming an int variable named count has been declared and initialized to a value larger than zero, write a loop that prints the numbers from count down to 0, inclusive, one number each line. So if count is 4, you should print:

4
3
2
1
0

You can use any kind of loop you want! But do not modify count.

More Practice

Need more practice? Head over to the practice page.