前言:
Turbo C 2.0提供三種基本的循環語句: for語句、while語句和do-while語句。
for(i=1;i<=10;i++)語句;
main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) printf(%d %d\n,i,j); }輸出結果為:
main() { int sn=0,i; for(i=1;i<=100;i++) sn+=i; /*1+2+……+100*/ printf(%d\n,sn); }
#include stdio.h main() { char c; c='\0'; /*初始化c*/ while(c!='\n') /*回車結束循環*/ c=getche(); /*帶回顯的從鍵盤接收字符*/ }
while((c=getche())!='\n');這個循環直到鍵入回車為止。
main() { int sn=0,i=0; while(++i<=100) sn+=i; /*求1+2+……+100*/ printf(%d\n,sn); }
main() { int sn=0,i=1; do sn+=i; /*求1+2+……+100*/ while(++i<=100); printf(%d\n,sn); }從上面三個程序看出,使用for,while和do--while求解同樣的問題,基本思路都差不多,只是在第一次計算時,注意初值。
main() { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) break; /*如果i等於51,則跳出循環*/ sn+=i; /*1+2+……+50*/ } printf(%d\n,sn); }可以看出,最終的結果是1+2+……+50。因為在i等於51的時候,就跳出循環了。自己寫寫怎樣在while和do--while循環中增加break語句。
main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) { if(j==2) break; printf(%d %d\n,i,j); } }輸出結果為:
main() { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) continue; /*如果i等於51,則結束本次循環*/ sn+=i; /*1+2+……+50+52+……+100*/ } printf(%d\n,sn); }從程序中可以看出,continue語句只是當前的值沒有執行,也就是說當前的值跳過去了,接著執行下次循環。
main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) { if(j==1) continue; printf(%d %d\n,i,j); } }輸出結果為:
main() { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) goto loop; /*如果i等於51,則跳出循環*/ sn+=i; /*1+2+……+50*/ } loop: ; printf(%d\n,sn); }可以看出,這兒的goto語句和break作用很類似。
printf(%d\n,sn);也可以寫成loop: printf(%d\n,sn);
main() { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) goto loop; /*如果i等於51,則跳出本次循環*/ sn+=i; /*1+2+……+50+52+……+100*/ loop: ; } printf(%d\n,sn); }可以看出這兒的loop語句和continue的作用類似。
main() { int i,j,k; printf(i j k\n); for(i=0;i<2;i++) for(j=0;j<3;j++) for(k=0;k<3;k++) { if(k==2) goto loop; printf(%d %d %d\n,i,j,k); } loop: ; }
main() { int i,j,k; printf(i j\n); for(i=0;i<2;i++) { for(j=0;j<3;j++) { for(k=0;k<3;k++) { if(k==2) break; printf(%d %d %d\n,i,j,k); } if(k==2) break; } if(k==2) break; } }
main() { int num1,num2,i,min; scanf(%d%d,&num1,&num2); min=num1 for(i=min/2;i>0;i--) if(num1%i==0&&num2%i==0) break; printf(最大公約數為%d\n,i); }
main() { int n,i; long temp=1,sn=0; /*從9!以後,所得的值就超過了int范圍*/ scanf(%d,&n); for(i=1;i<=n;i++) { temp*=i; sn+=temp; /*如果沒有這一步,求的就是n!*/ } printf(%ld\n,sn); }
#include math.h main() { int num,i,flag=0; scanf(%d,&num); for(i=2;i { flag=0; /*標志變量復位*/ if(num%i==0) { flag=1; break; } } if(flag==0) printf(是素數\n); else printf(不是素數\n); }