Looping Constructs in Java - While, Do While, Break and Continue

The while statement

The “while loop” is an alternative to “for loop”. a “for loop” is usually used when the number of times the block is to be executed is known. A “while loop” is usually used when the number of times the block is to be executed is not known, like prompting the user whether to stop executing during every iteration.

The syntax of “while loop” is:

while (<condition>) <statements>;

Example:

int i=0;

while(i<5)

{

  System.out.print(i);

  i++;

}

If you initialize i to 5, the loop will never get executed and nothing will be printed.

 

The do-while statement

In a while statement, evaluation of the expression happens at the beginning of the loop and the body of the loop may never be executed if the first evaluation of the logical expression evaluates to false. The do-while statement is similar to a while loop except that the body of the loop always executes at least once.

The syntax of do-while loop is:

do <statement> while (<condition>);

Example:

int j=0;

do

{

  System.out.print(j);

  j++;

}

while(j<5);

If you initialize j to 5 in this example, the loop will get executed once even is while condition is false.

Note that the semicolon (;) after while in do-while is required always. If you put a semicolon (;) after “while” in a regular “while statement”, it will mean an empty statement and the while loop might go into an infinite loop. See quiz for example.

 

The break statement

The break statement terminate the current loop (while, for, for-each, or do-while) or the switch statement and passes control to the next statement following the loop. The break statement cannot be used outside of a loop or switch.

Infinite loops are useful to avoid writing a logical condition for a loop just for the sake of writing. Most infinite loops are designed to terminate using the break statement. However we should be careful about unintentional infinite loops which are dangerous.

 

The continue statement

The continue statement bypass remaining statements in a loop in the current iteration and reaches end of the loop. It will then continue with next iteration of the loop from beginning. The continue statement cannot be used outside of a loop.

Loops can be nested within each other. Any nested combination of the for, for-each, while, or do-while loops is allowed.

If we use break and continue statements in the inner loop, it will only break out or skip to the end of the inner loop and not the outer loop.

 

Quiz

Question 1

Will code compile; if yes, find output:

int i=0;

while(i<5);

{

  System.out.print(i);

  i++;

}

 

Quiz Answers

Answer 1

Code will compile, but will not print anything.

Here while statement is followed by a semicolon, which is an empty statement and hence the while loop will go into an infinite loop. So remainder is not executed. The block within braces ({}) though looks like while body block, is just an inner block. To know more about blocks, refer to javajee.com/blocks-and-methods-in-java.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)