C Tutorial – for loop, while loop, break and continue
In every programming language, thus also in the C programming language, there are circumstances were you want to do the same thing many times. For instance you want to print the same words ten times. You could type ten printf function, but it is easier to use a loop. The only thing you have to do is to setup a loop that execute the same printf function ten times.
There are three basic types of loops which are:
- “for loop”
- “while loop”
- “do while loop”
The for loop
The “for loop” loops from one number to another number and increases by a specified value each time.
The “for loop” uses the following structure:
for (Start value; continue or end condition; increase value)
statement;
Look at the example below:
#include<stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf ("Hello\n");
printf ("World\n");
}
return 0;
}
Note: A single instruction can be placed behind the “for loop” without the curly brackets.
Note: For those who don’t know printf or need to know more about printf format specifiers, then first a look at our printf C language tutorial.
Let’s look at the “for loop” from the example: We first start by setting the variable i to 0. This is where we start to count. Then we say that the for loop must run if the counter i is smaller then ten. Last we say that every cycle i must be increased by one (i++).
In the example we used i++ which is the same as using i = i + 1. This is called incrementing. The instruction i++ adds 1 to i. If you want to subtract 1 from i you can use i--. It is also possible to use ++i or --i. The difference is is that with ++i (prefix incrementing) the one is added before the “for loop” tests if i < 10. With i++ (postfix incrementing) the one is added after the test i < 10. In case of a for loop this make no difference, but in while loop test it makes a difference. But before we look at a postfix and prefix increment while loop example, we first look at the while loop.
The while loop
The while loop can be used if you don’t know how many times a loop must run. Here is an example:
#include<stdio.h>
int main()
{
int counter, howmuch;
scanf("%d", &howmuch);
counter = 0;
while ( counter < howmuch)
{
counter++;
printf("%d\n", counter);
}
return 0;
}
Let’s take a look at the example: First you must always initialize the counter before the while loop starts ( counter = 1). Then the while loop will run if the variable counter is smaller then the variable “howmuch”. If the input is ten, then 1 through 10 will be printed on the screen. A last thing you have to remember is to increment the counter inside the loop (counter++). If you forget this the loop becomes infinitive.
As said before (after the for loop example) it makes a difference if prefix incrementing (++i) or postfix incrementing (i++) is used with while loop. Take a look at the following postfix and prefix increment while loop example:
#include<stdio.h>
int main(void) {
int i;
i = 0;
while(i++ < 5) {
printf("%d\n", i);
}
printf("\n");
i = 0;
while(++i < 5) {
printf("%d\n", i);
}
return 0;
}
The output of the postfix and prefix increment example will look like this:
1
2
3
4
5
1
2
3
4
i++ will increment the value of i, but is using the pre-incremented value to test against < 5. That’s why we get 5 numbers.
++i will increment the value of i, but is using the incremented value to test against < 5. That’s why we get 4 numbers.
The do while loop
The “do while loop” is almost the same as the while loop. The “do while loop” has the following form:
do
{
do something;
}
while (expression);
Do something first and then test if we have to continue. The result is that the loop always runs once. (Because the expression test comes afterward). Take a look at an example:
#include<stdio.h>
int main()
{
int counter, howmuch;
scanf("%d", &howmuch);
counter = 0;
do
{
counter++;
printf("%d\n", counter);
}
while ( counter < howmuch);
return 0;
}
Note: There is a semi-colon behind the while line.
Break and continue
To exit a loop you can use the break statement at any time. This can be very useful if you want to stop running a loop because a condition has been met other than the loop end condition. Take a look at the following example:
#include<stdio.h>
int main()
{
int i;
i = 0;
while ( i < 20 )
{
i++;
if ( i == 10)
break;
}
return 0;
}
In the example above, the while loop will run, as long i is smaller then twenty. In the while loop there is an if statement that states that if i equals ten the while loop must stop (break).
With “continue;” it is possible to skip the rest of the commands in the current loop and start from the top again. (the loop variable must still be incremented). Take a look at the example below:
#include<stdio.h>
int main()
{
int i;
i = 0;
while ( i < 20 )
{
i++;
continue;
printf("Nothing to see\n");
}
return 0;
}
In the example above, the printf function is never called because of the “continue;”.
That was all for now. Don’t forget to make some example programs of your own, just for practice!
Update: You can also take a look at one of the following example(s) that also use for loops and while loops:
the examples given is good but I have to know first the program that will output , “Do you want to try again?”.
please help me.
Write a program to print all the ASCII value using While Loop.
Looks like a home-work question, so we won’t give you a while-loop answer, instead we give a for loop example:
To find ASCII value of character in C, you just have to remember the following: a variable of type char is just an 8-bit int.
#include<stdio.h>
void main(void)
{
int i;
for (i = 0; i < 128; i++)
{
printf("%d = %c\n", i, i);
}
}
For an ASCII-table look at http://www.asciitable.com/
You can figure out the rest yourself!
@shelven,
You can try something like
do{
/* blah blah */
printf(“\n Do you want to continue? \n”);
} while(getchar()!=’n’ && getchar()!=’N'); /* Continue while the response does *not* equal ‘n’ or ‘N’
don’t forget parenthesis while using “&&” operator
while( (getchar()!=’n’) && (getchar()!=’N’) );
hello sir
i want to know how we can use two FOR loop.
which out put must be-
A B C D E D C B A
A B C D D C B A
A B C C B A
A B B A
A A
please help me
hello
i need this out put some one help
here a and b are variables
this output should be through loops.
a=1, b=0 a=5 , b=2 ;
a=3, b=1 a=7 , b=3 ;
a=1, b=0 a=5 , b=2 ;
a=3, b=1 a=7 , b=3 ;
Perfect
********** code for Akhter*********
enjoy but try to understand programming
void main()
{
clrscr();
int a=1,b=0,c=0;
while (c<2)
{
cout<<endl;
cout<<"a="<<a<<" ,b ="<<b<<", a="<<a+4<<", b= "<<b+4;
a+=2;
b+=1;
cout<<endl;
cout<<"a="<<a<<" ,b ="<<b<<", a="<<a+4<<", b= "<<b+4;
c++;
a=1;
b=0;
}
getch();
}
hi i am nooruddin i am IT teacher you are going good in programming, i like your lessons
it’s helpful
you are doing well to reply our qns and to teche programming thanks
This helps me to understand d concept of while,do while and for loop …
thanx…
the above examples are very good
Thank u so much sir hv is vr use ful 2 me. Iam a b.com student…
thank u so much sir this is vry heplful for me am a btech student
any body tell me — when i am run a for loop like for(i=0;i<=10;i++)thn result is 012345678910
i wan to know how's the 0 come;
(i=0;i<=10;i++) —-
i=0; is the start make it (i=1;
i<=10 is the end process
reply for Ankit:
Hi Ankit
the loop is (i=0;i<=10;i++)
i is the variable which stands for starting value,ending value and inc or dec.
here u hav started with 0 only.Thts y it came 0.If u want to atrt with 1 means u should write ur loop like ths (i=1;i<=10;i++)
so good!
All,
Can any one help me to code a program using while loop, that will count the charecters,numbers, alphanumerical.
for ankit
hello ankit,in the 1st step of for loop the value are intialise ok,then second test the condition, then in third incre/decrement ok
now if initialise i=0
then 1st it will check condition then if condition is true then it will execute the block or a single line statement.
after that the value of i will going for incr/decrement ok
that’s why ur output will showing like that-
012345678910 ok
Hello Sir,
i want to know that how to use for loop this statement
*
* A *
* A * A *
* A * A * A *
@tarun: take a look at C Tutorial a star pyramid an string triangle using for loops. In that tutorial we do almost what you’re asking. You should be able to make the additional changes yourself.
1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1
i want output like this
conditions
1)using single loop(for or while)
2)can use maximum of 2 variables
i read break statement in book. But didnt got it. i read here and instantly got it because of your simple language. thnx
[...] C Tutorial – for loop, while loop, break and continue | CodingUnit Programming Tutorials C Programming – Arrays Basicly : Code: [...]
**decimal to binary using while loop **
#include
#include
#include
void main()
{
int n,s=0,r,x=0;
clrscr();
printf(“these programe is develope by manas maity.BCA \n”)
printf(“\n enter number:”);
scanf(“%d”&n);
while(n!=0)
{
n=n%2;
s=s+r*pow(10,x);
n=n/2;
x++;
printf(“the number is : %d”,s);
}
getch();
}
**write a programe to print a pascal trangle using for loop. **
#include
#include
void main()
{
int
clrscr();
printf(“these programe is develope by manas maity.BCA \n”);
pintf(“enter number which u want: “);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
c=1;
for(j=0;j<=n-i;j++)
printf("%3c",32);
for(j=0;j<=i;j++)
{
printf("%6d",c);
c=c*(i-j)/(j*1)
}
printf("\n");
}
getch();
}
It is very helpfull
this site is realy owsm…:)))
A A+2 A+4 A+6
3 5 7 9
6 8 10 12
9 11 13 15
12 I7 19 21
how can i get this out put using loops. plz help me….:)
It is very easy to understand
Work in progress but it only loops once… What did i enter wrong or am I missing something?
# include
# include
using namespace std;
int main()
{ //Declaring the variables needed
double numyears;
int count = 0;
int month;
string monthName[]={“January”,”Febuary”,”March”,”April”,”May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”};
int averageNum[11];
for (int month = 0; month <= 11; month++); //Getting the averages for each month
{
cout << "Enter the average for " << monthName[month] <> averageNum[month];
}
return 0;
}
hello sir
iwant to know how we can use two FOR loop.
* * * * *
* * * *
* * *
* *
*
@ayaz memon: Take a look at the following C language tutorial star pyramid
#include
void main()
{
int num,i=0;
do
}
cout<>num;
if(num2==0){
cout<<"\n even"<<endl;
i++;}
else
cout<<"\n odd"<<endl;
}
while(num!=999);
cout<<"\n number of even number="<<i;
}
plz help is it correct coding,,,
For Nivetha,
What was ur question ?
U can probably get some hints from following code :
#include
using namespace std;
int main()
{
int num,i=0;
do
{
cout<>num;
if(num%2==0){
cout<<"\n Number is even!! "<<endl;
i++;
}
else
cout<<"\n Number is odd !! "<<endl;
}
while(num<=999);
cout<<"\n number of even number="<<i;
return 0;
}
hello sir it is very usefull thanks toooooooooo
Nice but, i need understanding of working of two for loop. Awaiting for Quick Ans
nice note ! thank :::
can u pls help me how make a program that inputs a string of keyboard characters and outputs the characters in reverse order using for loop statement.
Sample Output:
Input : Syntacs College
Output : egelloC scatnyS
very nice helpful
hi this is simply superb…very nice examples … thanks for this postings ..
For Nivetha,
What was ur question ?
U can probably get some hints from following code :
#include
using namespace std;
int main()
{
int num,i=0;
do
{
coutnum;
if(num%2==0){
cout<<"\n Number is even!! "<<endl;
i++;
}
else
cout<<"\n Number is odd !! "<<endl;
}
while(num<=999);
cout<<"\n number of even number="<<i;
return 0;
}
How to create a function to convert kg to pound and from pound to kg.
@Samantha: it isn’t that difficult, so try to make it yourself. That is the only way to learn.
Here are some hints: 1 kilogram = 2.2046 pounds, hence to kilograms into pounds: pounds = 2.2 * kilograms.
To create a program do something like this: create two floats (one for pounds and one for kilograms), get some user input using scanf (for instance), use formula pounds = 2.2 * kilograms and print the result of pounds.
Good luck, I know you can do it with the hints above!
I have a problem I did my program and my teacher wants it to exit When I press Q there is my program
#include
#include
int main()
{
char type;
int lenght, quantity=0.0;
float total=0.0,Ecost,Ucost;
while(1)
{
printf(“Enter store code and quantity :”);
scanf(” %c%d%d”,&type,&lenght,&quantity);
if (type ==’Q')
{
break;
}
else if(type==’E')
{
if(lenght==25)
{
Ecost= quantity *18 ;
total= Ecost;
printf(“%d Ethernet cables (25 foot) costs %3.2f (totalt = %5.2f)\n”,quantity,Ecost,total);
}
else if(lenght==50)
{
Ecost = quantity * 30;
total= Ecost;
printf(“%d Ethernet cables (50 foot) costs %3.2f (total = %5.2f) \n”,quantity,Ecost,total);
}
}
if (type == ‘U’)
{
if(lenght==6)
{
Ucost=quantity*24;
total = Ecost +Ucost;
printf(“%d USB cables (6 foot) costs %3.2f (total = %5.2f)\n”,quantity,Ucost,total);
}
else if(lenght==10)
{
Ucost=quantity*36;
total = Ecost+Ucost;
printf(“%d USB cables (10 foot) costs %3.2f (total = %5.2f)”,quantity,Ucost,total);
}
{
}
}
}
system(“pause”);
return 0 ;
}
/*coding for below output
*
* A *
* A * A *
* A * A * A * */
#include
#include
void main()
{
int i;,k=0;
clrscr();
for(i=1;i<=4;i++)
{
for(j=1;j<=i+k;j++)
{
if(j%2==0)
printf(" A");
else
printf(" *");
}
}
getch();
}
Can any1 help me fix this plz…
help me clear out Leap year. and direct return 0…
#include
#include
int main()
{ int year=0;
do{
printf(“\n Enter year:”);
scanf(“%d”,&year);
if
(((year%4==0)&&(year%100!=0))||((year%4==0)&&(year%100==0)&&(year%400==0))||(year<400))
printf(" LeapYear.\n”,year);
else
printf(” Not LeapYear. \n”,year);
}
while(year > 0);
return 0;
}
@jack goh: I’m not exactly sure what you are asking, but I assume something like this piece of code -
#include<stdio.h>
#define TRUE 1
#define FALSE 0
int main() {
int year;
printf(“Please enter a year (example: 1999) : “);
scanf(“%d”, &year);
if(year% 4 == FALSE && year%100 != FALSE || year%400 == FALSE) {
printf(“%d is a Leapyear. \n”, year);
} else {
printf(“%d is NOT a Leapyear. \n”, year);
}
return 0;
}
Also see the tutorial: How to make a calendar in C language for additional information.
I hope that this helps!
(#include )
int main ()
{
float Kilogram;
scanf(“%f”, &Kilogram);
stdin;
float Pounds = Kilogram * 2.20046;
printf(“%f Kilograms = %f Pounds.\n”, Kilogram, Pounds);
float POUNDS;
scanf(“%f”, &POUNDS);
stdin;
float KILOGRAMS = POUNDS / 2.20046;
printf(“%f POUNDS = %f KILOGRAMS”, POUNDS, KILOGRAMS);
return 0;
}
Write a program to calculate the sum of all the numbers less than a given number n.
ex: output
Enter number : 3
6
Enter number : 5
15
really its so amazing for learn….
it was really helpfull
nice
hey ..could any body write a function to solve simultaneous equations ..
in have great difficulties with this
Hello sir
Can you please help me to output the sum of numbers from 1 to 15 (inclusive) and sum of odd numbers from 15-45 (inclusive) ?
@Rakshith kumar:
#include
int main()
{
int i=1,j=10;
while(j>1)
{
if(i<11)
{
printf("%d ",i);
++i;
}
else
{
–j;
printf("%d ",j);
}
}
}
good job sir
While testing on continue; i discovered it could be used to skip a certain number too, like when using this:
i = 0;
while ( i++ < 20 )
{
if ( i == 16 ) continue;
printf("number %d\n", i );
}
it will skip the number 16 but will print every number in the range 1 to 20
sir this is very nice tutorial by you
thankyou
void main(void)
{
for(a=2;a<=400;a+2)
{
printf("%d",a);
}
i m not getting the series of even num help me???? output showing only 400 nd its blinking !! :S
#include
void main(void)
{
int a;
for(a=2;a<=400;a+2)
{
printf("%d",a);
}
}
your simple error is only on the declaration of ‘a’ that must be an integer.otherwise the compiler doesn’t know what variable ‘a’ is.
it was good n easy..
plzz tell the purpose of getch and also explain nested loops if possible..
thankyou
nice gather
#include
using namespace std;
int main()
{
int n,factorial=1;
cout<>n;
for(int i=n;i>0;i–){
factorial=i*factorial;
}
cout<<factorial<<endl;
return (0);
}