The while
loop repeats a statement or block while its controlling
condition
is true
.
Here is its general form:
while(condition) {
// body of loop
}
condition
can be any Boolean
expression. condition
is true
. Here is a while loop that counts down from 10, printing exactly ten lines of "tick":
public class Main { public static void main(String args[]) { int n = 10; while (n > 0) { System.out.println("n:" + n); n--; } } }
When you run this program, you will get the following result:
The following code shows how to use the while loop to calculate sum.
public class Main { public static void main(String[] args) { int limit = 20; int sum = 0;/*from ww w.j a va 2 s. c om*/ int i = 1; while (i <= limit) { sum += i++; } System.out.println("sum = " + sum); } }
The code above generates the following result.
The body of the while
loop will not execute if the condition is false
.
For example, in the following fragment, the call to println()
is never executed:
public class Main { public static void main(String[] argv) { int a = 10, b = 20; while (a > b) { System.out.println("This will not be displayed"); } System.out.println("You are here"); } }
The output:
The body of the while
can be empty.
For example, consider the following program:
public class Main { public static void main(String args[]) { int i, j;//from w ww. ja v a 2 s . co m i = 10; j = 20; // find midpoint between i and j while (++i < --j) ; System.out.println("Midpoint is " + i); } }
The while
loop in the code above has no loop body and i
and
j
are calculated in the while loop condition statement.
It generates the following output:
To execute the body of a while loop at least once, you can use the do-while loop.
The syntax for Java do while loop is:
do { // body of loop } while (condition);
Here is an example to show how to use a do-while
loop.
public class Main { public static void main(String args[]) { int n = 10; do { System.out.println("n:" + n); n--; } while (n > 0); } }
The output:
The loop in the preceding program can be written as follows:
public class Main { public static void main(String args[]) { int n = 10; do { System.out.println("n:" + n); } while (--n > 0); } }
The output is identical the result above:
The following program implements a very simple help system with do-while
loop and switch
statement.
public class Main { public static void main(String args[]) throws java.io.IOException { char choice;// ww w. j av a 2 s . c om do { System.out.println("Help on:"); System.out.println(" 1. A"); System.out.println(" 2. B"); System.out.println(" 3. C"); System.out.println(" 4. D"); System.out.println(" 5. E"); System.out.println("Choose one:"); choice = (char) System.in.read(); } while (choice < '1' || choice > '5'); System.out.println("\n"); switch (choice) { case '1': System.out.println("A"); break; case '2': System.out.println("B"); break; case '3': System.out.println("C"); break; case '4': System.out.println("D"); break; case '5': System.out.println("E"); break; } } }
Here is a sample run produced by this program: