1. 程式人生 > >C語言迴圈結構篇

C語言迴圈結構篇

Three Day

一、while、do_while

語法形式:while (表示式) {

                     迴圈體 }
二、for語句
for語句是C語言中最靈活功能最強的迴圈語句
語法形式:for(表示式1;表示式2;表示式3){
                            迴圈體  }
例:計算1+2+3+4的和
#include <stdio.h>
int main(void) {
	int s = 0; 
	int i;
	for(i = 1; i < 5; i++) {
		s += i;
	}
	printf("%d", s);
} 
輸出結果:10
三、break語句
break語句用於終止迴圈的執行(break所在最近迴圈體)
1、跳出迴圈
#include<stdio.h>
int main(void) {
	int num;
	for(num = 0; num < 5; num++) {
		if (num == 3) {
			break;              //當num=3時,跳出迴圈for
		}
		printf("%d\n", num);
	}
}
輸出結果:0 1 2
<pre><span style="font-family:microsoft yahei;"><span style="white-space: pre-wrap;">2、跳出最近的迴圈</span></span>
#include<stdio.h>
int main(void) {
<span style="white-space:pre">	</span>int num = 0;
	while(num < 1) {
		printf("while\n");
	for(; num < 1; num++) {
		break;//跳出離它最近的迴圈,並且該break語句包含在該迴圈內 
		printf("for\n");
		}
<pre name="code" class="csharp"><span style="font-family: 'microsoft yahei'; white-space: pre-wrap;"><span style="white-space:pre">				</span>//break後的地方</span>
}
}//輸出結果:無限輸出while
四、contiue語句
continue結束本次迴圈
#include <stdio.h>
int main(void) {
	int i;
	for(i = 0; i < 6; i++) {
	<span style="white-space:pre">	</span>if(i == 3) {
		<span style="white-space:pre">	</span>continue;      //跳出本次迴圈
		}
		printf("%d", i);
	}
}
輸出結果:0 1 2 4 5
五、語句練習
1、九九乘法表(while)
#include<stdio.h>
int main(void) {
	int j = 0, i = 0;
	while(j < 9) {
		j++;
		i = 1;
		while(i <= j) {
			printf("%d*%d=%d\t", i, j, i * j);
			i++;
		}
		printf("\n");
	}
	
}
輸出結果:2、有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
#include<stdio.h>
int main(void) {
	int a, b, c, d = 0;
	for (a = 1; a < 5; a++) {
		for (b = 1; b < 5; b++) {
			if (a == b) {
				continue;
			}
			for (c = 1; c < 5; c++) {
				if (a == b || b == c) {
					continue;
				}
				printf("%d%d%d\n", a, b, c);
				d++;
			}
		}
	}
	printf("總數為:%d", d);
}
輸出結果:36
3、列印矩形
#include<stdio.h>
int main(void) {
	int i, j;
	for (j = 0; j < 2; j++) {
		for (i = 0; i < 4; i++) {
			printf("*");
		}
		printf("\n");
	}
}
輸出結果:
*****
*****
4、列印平行四邊形
#include <stdio.h>
int main(void) {
	int i, j;
	for(j = 0; j < 3; j++) {
		for(i = 0; i < 6 - j; i++) {
			if(i < (2 - j)) {
				printf(" ");
			} 
			else {
			printf("*");	
			}
			
		}
		printf("\n");
	}
}
輸出結果:
  *****
 *****
*****
5、左直角三角形
#include<stdio.h>
int main() {
	int x, y;
	for (y = 0; y <= 4; y++) {
		for (x = 0; x <= 4; x++) {
			if (x >= 0 && y <=4 && y >= x) {
				printf("*");
			} else {
				printf(" ");
			}
		}
		printf("\n");
	}
}
輸入結果:
*
**
***
****
*****
6、實心菱形
#include<stdio.h>
int main() {
	int x, y;
	for (y = -3; y <= 3; y++) {
		for (x = -3; x <= 3; x++) {
			if (y <= x + 3 && y >= -x -3 && y >= x - 3 && y <= -x + 3) {
				printf("*");
			} else {
				printf(" ");
			}
		}
		printf("\n");
	}
} 
輸出結果:
*
       ***
      *****
     *******
      *****
       ***
*
7、空心菱形
#include <stdio.h>
int main(void) {
	int x, y;
	for(y = 0; y <= 6; y++) {
		for(x = 0; x <= 6; x++) {
			if(y == x + 3 || y == x - 3 || y == 3 - x || y == 9 - x){
				printf("*");
			} else {
			printf(" ");
		}
	}
		printf("\n");
	}
	}
輸入結果:
*
       * *
      *   *
     *     *
      *   *
       * *
*
8、愛心
#include <stdio.h>
int main(void) {
	int x, y;
	for (y = 0; y <= 8; y++) {
		for (x = -6; x < 0; x++) {
			if (y <= x + 8 && x >= -6 && y >= -x -5 && y >= 0 && y >= x + 3 ) {
				printf("*");
			} else {
				printf(" ");
			}	
		}
		for (x = 0; x <= 6; x++) {
			if (y <= -x + 8 && x <= 6 && y >= x -5 && y >= 0 && y >= -x + 3 && x >= 0) {
				printf("*");
			} else {
				printf(" ");
			}	
		}
		printf("\n");
	}
	
}
輸出結果:
    ***     ***
   *****   *****
   ****** ******
    ***********
     *********
      *******
       *****
        ***
*