C continue

Summary: in this tutorial, you will learn how to use the C continue statement to skip the current iteration of a loop including for loop, while loop, and do...while loop.

Introduction to the C continue statement

So far, you have learned how to execute a code block repeatedly based on a condition using the for loop, while loop, and do while loop statements. These loop statements execute a code block repeatedly a fixed number of times or as long as a condition is met.

Sometimes, it’s convenient to skip the current iteration of a loop without testing the condition.

In the previous tutorial, you learned how to use the break statement to exit a loop early. In this tutorial, you’ll learn how to use the continue statement to skip the current iteration and start a new one from the top of the loop.

The continue statement skips the rest of the current iteration in a loop and returns to the top of the loop. The continue statement works like a shortcut to the end of the loop body.

To continue statement includes the continue keyword with a semicolon (;):

continue;Code language: JavaScript (javascript)

In practice, you often use the continue statement with an if statement to specify a condition for skipping the current iteration:

// somewhere in a loop
if (expression) 
    continue;Code language: JavaScript (javascript)

Using the C continue statement in a for loop

The following shows how to use the continue statement in a for loop:

for (/*...*/)
{
    //-- other statements
    if (condition)
        continue;
    // other statements
}Code language: JavaScript (javascript)

When the program encounters the continue statement, it skips all the statements that follow the continue statement to the end of the loop body and starts a new iteration from the beginning of the loop.

The following example uses the continue statement in a for loop to display only odd numbers from 1 to 10:

#include <stdio.h>

int main()
{
    int i;
    for (i = 0; i < 10; i++)
    {
        if (i % 2 == 0)
            continue;
        printf("%d ", i);
    }

    return 0;
}Code language: PHP (php)

Output:

1 3 5 7 9

The for loop runs 10 times. If the current number is an even number, the condition i % 2 == 0 becomes true. The program encounters the continue statement.

Since the continue statement skips the current iteration and starts a new one, it skips the printf("%d ", i) statement. As the result, the loop doesn’t display even numbers.

Using the C continue statement in a while loop

The following example uses the continue statement in a while loop:

while (expression) 
{
    //-- other statements
    if (condition)
        continue;
    // other statements
}Code language: JavaScript (javascript)

The following example uses the continue statement in a while loop to calculate the square root of an input number:

#include <stdio.h>
#include <math.h>

int main()
{
    double number;

    while (1)
    {
        // prompt for a positive number
        printf("\nEnter a positive number to calcualte the square root (0 to exit):");
        scanf("%lf", &number);

        // exit the loop
        if (number == 0)
            break;

        // start the new iteration
        if (number < 0)
            continue;

        printf("The square root of %.2lf is %.2lf", number, sqrt(number));
    }
    return 0;
}
Code language: PHP (php)

The program repeatedly prompts for a positive number and calculates the square root of the entered number. To calculate a square root of a number, the program uses the sqrt() function from the math.h library.

If the input number is zero, the loop exits because of the break statement:

if (number == 0)
    break;Code language: JavaScript (javascript)

If the input number is less than zero, the following statement starts the new iteration from the top of the loop:

if (number < 0)
    continue;Code language: JavaScript (javascript)

If the input number is positive, the followning statement shows the result:

printf("The square root of %.2lf is %.2lf", number, sqrt(number));Code language: CSS (css)

Using the C continue statement in a do…while loop

Here’s the syntax for using the continue stament in a do...while loop:

do
{
    //-- other statements
    if (condition)
        continue;
    // other statements
} while (expression);Code language: JavaScript (javascript)

Then following example uses the continue statement in a do...while loop to display the even numbers from 1 to 10:

#include <stdio.h>

int main()
{
    int n = 0;
    do
    {
        n++;
        // skip the odd number
        if (n % 2 != 0)
            continue;

        printf("%d ", n);

    } while (n < 10);

    return 0;
}Code language: PHP (php)

Output:

2 4 6 8 10 

How it works.

  • First, declare the n variable and initialize it to zero.
  • Second, add 1 to n at the beginning of the loop.
  • Third, start a new iteration if n is an even number. Otherwise, display the value of n.

Repeat the second step as long as n is less than 10.

Summary

  • Use the C continue statement to skip the current iteration and start a new one from the beginning of the loop.
Was this tutorial helpful ?