JavaScript Loop Control

JavaScript Loop Control

JavaScript provides you full control to handle your loops and switch statement. There may be a situation when you need to come out of a loop without reaching at its bottom. There may also be a situation when you want to skip a part of your code block and want to start next iteration of the look.

To handle all such situations, JavaScript providesbreak and continue statements. These statements are used to immediately come out of any loop or to start the next iteration of any loop respectively.

The break Statement:

The break statement, which was briefly introduced with the switch statement, is used to exit a loop early, breaking out of the enclosing curly braces.

Example:

This example illustrates the use of a breakstatement with a while loop. Notice how the loop breaks out early once x reaches 5 and reaches todocument.write(..) statement just below to closing curly brace:

<script type="text/javascript">

<!--

var x = 1;

document.write("Entering the loop<br /> ");

while (x < 20)

{

  if (x == 5){

     break;  // breaks out of loop completely

  }

  x = x + 1;

  document.write( x + "<br />");

}

document.write("Exiting the loop!<br /> ");

//-->

</script>

This will produce following result:

Entering the loop

2

3

4

5

Exiting the loop!

We already have seen the usage of breakstatement inside a switch statement.

The continue Statement:

The continue statement tells the interpreter to immediately start the next iteration of the loop and skip remaining code block.

When a continue statement is encountered, program flow will move to the loop check expression immediately and if condition remain true then it start next iteration otherwise control comes out of the loop.

Example:

This example illustrates the use of a continuestatement with a while loop. Notice how thecontinue statement is used to skip printing when the index held in variable x reaches 5:

<script type="text/javascript">

<!--

var x = 1;

document.write("Entering the loop<br /> ");

while (x < 10)

{

  x = x + 1;

  if (x == 5){

     continue;  // skill rest of the loop body

  }

  document.write( x + "<br />");

}

document.write("Exiting the loop!<br /> ");

//-->

</script>

This will produce following result:

Entering the loop

2

3

4

6

7

8

9

10

Exiting the loop!

Using Labels to Control the Flow:

Starting from JavaScript 1.2, a label can be used with break and continue to control the flow more precisely.

label is simply an identifier followed by a colon that is applied to a statement or block of code. We will see two different examples to understand label with break and continue.

Note: Line breaks are not allowed between thecontinue or break statement and its label name. Also, there should not be any other statement in between a label name and associated loop.

Example 1:

<script type="text/javascript">

<!--

document.write("Entering the loop!<br /> ");

outerloop:   // This is the label name

for (var i = 0; i < 5; i++)

{

  document.write("Outerloop: " + i + "<br />");

  innerloop:

  for (var j = 0; j < 5; j++)

  {

     if (j >  3 ) break ;        // Quit the innermost loop

     if (i == 2) break innerloop; // Do the same thing

     if (i == 4) break outerloop; // Quit the outer loop

     document.write("Innerloop: " + j + "  <br />");

   }

}

document.write("Exiting the loop!<br /> ");

//-->

</script>

This will produce following result:

Entering the loop!

Outerloop: 0

Innerloop: 0

Innerloop: 1

Innerloop: 2

Innerloop: 3

Outerloop: 1

Innerloop: 0

Innerloop: 1

Innerloop: 2

Innerloop: 3

Outerloop: 2

Outerloop: 3

Innerloop: 0

Innerloop: 1

Innerloop: 2

Innerloop: 3

Outerloop: 4

Exiting the loop!

Example 2:

<script type="text/javascript">

<!--

document.write("Entering the loop!<br /> ");

outerloop:   // This is the label name

for (var i = 0; i < 3; i++)

{

   document.write("Outerloop: " + i + "<br />");

   for (var j = 0; j < 5; j++)

   {

      if (j == 3){

         continue outerloop;

      }

      document.write("Innerloop: " + j + "<br />");

   }

}

document.write("Exiting the loop!<br /> ");

//-->

</script>

This will produce following result:

Entering the loop!

Outerloop: 0

Innerloop: 0

Innerloop: 1

Innerloop: 2

Outerloop: 1

Innerloop: 0

Innerloop: 1

Innerloop: 2

Outerloop: 2

Innerloop: 0

Innerloop: 1

Innerloop: 2

Exiting the loop!

 

ليست هناك تعليقات:

إرسال تعليق