Java Tutorial/Control Structures II - Looping

From Wikiversity
Jump to navigation Jump to search

You can use loops to repeat the execution of a certain thing, without writing it out multiple times. There are several different loops you can use to meet your needs.

While Loops[edit | edit source]

While loops are the simplest kind of loops. They go as follows:

while(boolean) {
    //Java code...The do section
}

While the boolean is true, the "do..." section will be executed. Once it becomes false, the loop will exit. An example:

int counter = 0;
while(counter < 5) {
    System.out.println(counter);
    counter++; //same as counter = counter + 1;
}
System.out.println(counter);

This displays the numbers 0 - 4 in the loop, and 5 outside of it.

Do-While Loops[edit | edit source]

Do-While loops have the structure like:

do {
    //Java code...
} while(boolean);

It will execute "do...", and then check if the boolean is true or false. Then, it repeats. This is just like a regular while loop, except it ensures the code is executed at least once. An example of its use:

double counter = 1.5; //double is just like a float, except stores more
do {
    counter += 1.0; //add 1 to counter
    System.out.println(counter);
} while(counter < 5.0);

This will print the numbers 2.5, 3.5, 4.5, and 5.5.

For Loops[edit | edit source]

For loops are used mostly when you want counters in your loop. The structure is:

for(assign something a value; boolean; what to exec after each loop) {
    do...
}

The usual usage is:

//myNumber is just some number or variable that you want to count up to
for(int i = 0; i < myNumber; i++) { //increase by 1
    do...
}

As you can see, the loop first sets i to equal 0. Then, it checks that i is less than myNumber (before actually executing something). Then, it executes "do...". It increases i by 1. Then, it checks that i is less than myNumber again, executes "do...", etc.

(learn for-each loops in array section?)

Exercises[edit | edit source]

  • Make a for-loop that prints "Something" exactly 5 times.

Answer:

public class RegularAnswer {
    public static void main ( String[] args ) {
        for(int i = 0; i < 5; i++) { //can't be equal to 5, as i starts at 0
            System.out.println("Something");
        }
    }
}

Another, more "wild" answer:

public class WildAnswer {
    public static void main( String[] args ) {
        for(int i = 10; i < 18; i += 2) { //going by 2 each time, from 10 - 16
            System.out.println("Something"); //executed when i is 10, 12, 14, and 16
        }
        System.out.println("Something"); //5th time
    }
}
Previous: Control Structures I - Decision structures Up: Java Tutorial Next: Methods