4_1 循環結構概述3d
4_2 循環結構控制語句:for語句code
_2.1 for的通常形式:for(表達式1;表達式2;表達式3) input
循環體語句io
[例4-1] 用for循環求「1+2+3……+100」的值。for循環
#include<stdio.h> int main() { int i,sum=0; for (i=1;i<=100;i++) sum=sum+i; printf("1+2+3+……+100=%d\n",sum); return 0; }
_2.2 for語句的使用class
for(表達式1;表達式2;表達式3)循環
語句程序
注:表達式1,表達式2,表達式3可全省略或部分省略,可是「;」必定不能省。im
4_3 循環結構控制語句:while 語句與do ……while語句di
_3.1 while 語句
【例4-2】
#include<stdio.h> int main() { int i,sum=0; i=1; while (i<=100) { sum=sum+i; i++; } printf("1+2+3+……+100=%d\n",sum); return 0; }
特色:先判斷表達式,後執行語句。
注:若是不加花括號,while語句的範圍只到while後面的第一個分號。
_3.2 do ……while語句
通常格式:do
循環體語句
while(表達式);
【例4-3】
#include<stdio.h> int main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while (i<=100); printf("1+2+3+……+100=%d\n",sum); return 0; }
注:while表達式後的「;」必定不能省略。
_3.3 while語句與do ……while語句的比較
4_4 循環的嵌套
_4.1 輸出3*4的矩陣:
1 2 3 4
2 4 6 8
3 6 9 12
#include<stdio.h> int main() { int i,j,n; for (i=1;i<=3;i++) for (j=1;j<=4;j++,n++) { if (n%4==0) printf("\n"); printf("%d\t",i*j); } printf("\n"); return 0; }
【例4-6】輸出九九乘法表。
#include<stdio.h> int main() { int i,j; for (i=1;i<=9;i++) { for (j=1;j<=i;j++) { printf("%d*%d=%-3d\t",i,j,i*j); } printf("\n"); } return 0; }
_4.2 break 語句和continue 語句
1. 用break語句提早終止循環。
2. 用continue語句提早結束本次循環,繼續下次循環的斷定。
4_5 循環結構程序舉例
輸入一個大於3的整數,判斷它是否爲素數。
【法1】 直接相除至n-1
#include<stdio.h> int main() { int i,n; printf("Please input a integer number n:"); scanf("%d",&n); for (i=2;i<=n-1;i++) if (n%i==0) break; if (i<n) printf("%d is not a prime number!\n",n); else printf("%d is a prime number!\n",n); return 0; }
【法2】 直接相除至根號n
#include<stdio.h> #include<math.h> int main() { int i,n,k; printf("Please input a integer number n:"); scanf("%d",&n); k=sqrt(n); for (i=2;i<=k;i++) if (n%i==0) break; if (i<k) printf("%d is not a prime number!\n",n); else printf("%d is a prime number!\n",n); return 0; }
【例4-9】
【4-10】 輸入兩個整型數,求它們的最大公約數和最小公倍數。
#include<stdio.h> int main() { int m,n,r,t,temp; printf("請輸入兩個正整數:"); scanf("%d%d",&m,&n); t=m*n; if (m<n) { temp=m; m=n; n=temp; } while ((r=m%n)!=0) { m=n; n=r; } printf("最大公約數是:%d\n",n); printf("最小公倍數是:%d\n",t/n); return 0; }