前言:
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);
}