C break statement

The break statement can only appear in a switch body or a loop body. It causes the execution of the current enclosing switch or loop body to terminate. A break may be used to terminate the execution of a switch, while, do-while, or for.

Syntax
//loop or switch case 
break;

Flowchart of break in c

c language break statement flowchart

Example

snippet
#include<stdio.h>
#include<stdlib.h>
void main ()
{
	int i;
	for(i = 0; i<10; i++)
	{
		printf("%d ",i);
		if(i == 5)
		break;
	}
	printf("came outside of loop i = %d",i);
	
}
Output
0 1 2 3 4 5 came outside of loop i = 5

Example of C break statement with switch case

Click here to see the example of C break with the switch statement.

C break statement with the nested loop

In such case, it breaks only the inner loop, but not outer loop.

snippet
#include
int main(){
int i=1,j=1;//initializing a local variable  
for(i=1;i<=3;i++){    
for(j=1;j<=3;j++){  
printf("%d &d\n",i,j);  
if(i==2 && j==2){  
break;//will break loop of j only  
}  
}//end of for loop  
return 0;
}

Output

Output
1 1 1 2 1 3 2 1 2 2 3 1 3 2 3 3

As you can see the output on the console, 2 3 is not printed because there is a break statement after printing i==2 and j==2. But 3 1, 3 2 and 3 3 are printed because the break statement is used to break the inner loop only.

break statement with while loop

Consider the following example to use break statement inside while loop.

snippet
#include<stdio.h>
void main ()
{
    int i = 0;
    while(1)
    {
        printf("%d  ",i);
        i++;
        if(i == 10)
        break; 
    }
    printf("came out of while loop");
}

Output

Output
0 1 2 3 4 5 6 7 8 9 came out of while loop

break statement with do-while loop

Consider the following example to use the break statement with a do-while loop.

snippet
#include<stdio.h>
void main ()
{
   int n=2,i,choice;
   do
   {
       i=1;
       while(i<=10)
       {
           printf("%d X %d = %d\n",n,i,n*i);
           i++;
       }
       printf("do you want to continue with the table of %d , enter any non-zero value to continue.",n+1);
       scanf("%d",&choice);
	if(choice == 0)
       {
           break;
       }
       n++;
   }while(1);
}
Output
2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18 2 X 10 = 20 do you want to continue with the table of 3 , enter any non-zero value to continue.1 3 X 1 = 3 3 X 2 = 6 3 X 3 = 9 3 X 4 = 12 3 X 5 = 15 3 X 6 = 18 3 X 7 = 21 3 X 8 = 24 3 X 9 = 27 3 X 10 = 30 do you want to continue with the table of 4 , enter any non-zero value to continue.0

A break will only branch out of an inner-most enclosing block, and transfers program-flow to the first statement following the block. For example, consider a nested while-loop.

Syntax
while (expression) {
    while (expression) {
        if (expression)
            break;
        statements
    }
    statements
}

Here the break will terminate the inner while-loop and proceed to execute the statements of the outer while-loop.

This next example shows a fast technique for finding the smallest element in an array of length SIZE. A break is used to terminate the infinite outer while-loop.

snippet
i = SIZE;
temp = smallest = array[0];
while (1) {
    while (array[--i] > smallest)
    ;
    if (i == 0) break;
    array[0] = smallest = array[i];
}
array[0] = temp;
Related Tutorial
Follow Us
https://www.facebook.com/Rookie-Nerd-638990322793530 https://twitter.com/RookieNerdTutor https://plus.google.com/b/117136517396468545840 #
Contents +