C Tutorial/Statement/For statement
Содержание
- 1 Continue a for loop
- 2 for LOOP
- 3 for loop backward
- 4 indefinite loop: empty for
- 5 Initialize loop control variable outside the for statement
- 6 Nest for loop: two different control variables
- 7 Nest if statement in for loop
- 8 Omit all three parts in for loop
- 9 Sum integers in for statement
- 10 The for loop with a comma operator
- 11 Use char variable to control for loop
- 12 Use for loop to print a rectangle
Continue a for loop
<source lang="cpp">#include <stdio.h>
int main(){
int x=0; for(;;) { x++; if(x<=5) { printf("%d, ",x); continue; } printf("%d is greater than 5!\n",x); break; } return(0);
}</source>
1, 2, 3, 4, 5, 6 is greater than 5!
for LOOP
The for loop is usually used when the number of iterations is predetermined.
The format of the for loop is
<source lang="cpp">for (expr1;expr2;expr3){
s1; s2 ; }</source>
for loop backward
<source lang="cpp">#include <stdio.h> int main(void) {
long sum = 0L; int count = 10; int i; for (i = count ; i >= 1 ; sum += i-- ); printf("\nTotal of the first %d numbers is %ld\n", count, sum); return 0;
}</source>
Total of the first 10 numbers is 55
indefinite loop: empty for
<source lang="cpp">#include <stdio.h>
- include <ctype.h> /* For tolower() function */
int main(void) {
char answer = "N"; printf("\nThis program calculates the average of any number of values."); for( ;; ) /* Indefinite loop */ { printf("Do you want to enter another value? (Y or N): "); scanf(" %c", &answer ); if( tolower(answer) == "n" ){ break; } } return 0;
}</source>
This program calculates the average of any number of values.Do you want to enter another value? (Y o r N): N
Initialize loop control variable outside the for statement
<source lang="cpp">#include <stdio.h> int main(void) {
int count = 1; for( ; count <= 10 ; ++count) printf("\n%d", count); printf("\nWe have finished.\n"); return 0;
}</source>
1 2 3 4 5 6 7 8 9 10 We have finished.
Nest for loop: two different control variables
<source lang="cpp">#include <stdio.h> int main(void) {
long sum = 0L; int count = 10; int i,j; for(i = 1 ; i <= count ; i++ ){ sum = 0L; for(j = 1 ; j <= i ; j++ ) sum += j; printf("\n%d\t%ld", i, sum); } return 0;
}</source>
1 1 2 3 3 6 4 10 5 15 6 21 7 28 8 36 9 45 10 55
Nest if statement in for loop
<source lang="cpp">#include <stdio.h> int main(void) {
int chosen = 15; int guess = 0; int count = 3; printf("\nA Number.\n"); for( ; count>0 ; --count) { printf("\nYou have %d tr%s left.", count, count == 1 ? "y" : "ies"); printf("\nEnter a guess: "); scanf("%d", &guess); if (guess == chosen) { printf("\nYou guessed it!\n"); return 0; } if(guess<1 || guess > 20) printf("between 1 and 20.\n "); else printf("Sorry. %d is wrong.\n", guess); } printf("\nYou have had three tries and failed. The number was %d\n", chosen); return 0;
}</source>
A Number. You have 3 tries left. Enter a guess: 1 Sorry. 1 is wrong. You have 2 tries left. Enter a guess: 2 Sorry. 2 is wrong. You have 1 try left. Enter a guess: 3 Sorry. 3 is wrong. You have had three tries and failed. The number was 15
Omit all three parts in for loop
<source lang="cpp">#include <stdio.h> int main() {
printf("~ to exit"); for(;;) { char ch=getchar(); if(ch=="~") { break; } }
}</source>
~ to exit123 ~
Sum integers in for statement
<source lang="cpp">#include <stdio.h> int main(void) {
long sum = 0L; int count = 0; printf("\nEnter the number of integers you want to sum: "); scanf(" %d", &count); for (int i = 1 ; i<= count ; sum += i++ ); printf("\nTotal of the first %d numbers is %ld\n", count, sum); return 0;
}</source>
Enter the number of integers you want to sum: 112 Total of the first 112 numbers is 6328
The for loop with a comma operator
<source lang="cpp">#include <stdio.h> main(){
int i, j; for (i = 0, j = 10; i < 3 && j > 8; i++, j--){ printf (" the value of i and j %d %d\n",i, j); }
}</source>
the value of i and j 0 10 the value of i and j 1 9
Use char variable to control for loop
<source lang="cpp">#include <stdio.h> int main() {
char b,a="a" ; for(b="A";b<"K";b++) { printf("%d - %c ",a,b); } putchar("\n"); /* end of line */ return(0);
}</source>
97 - A 97 - B 97 - C 97 - D 97 - E 97 - F 97 - G 97 - H 97 - I 97 - J
Use for loop to print a rectangle
<source lang="cpp">#include <stdio.h> int main(void) {
printf("\n**************"); for(int count = 1 ; count <= 8 ; ++count) printf("\n* *"); printf("\n**************\n"); return 0;
}</source>
************** * * * * * * * * * * * * * * * * **************