【C語言】第5章 循環結構程序設計


第5章 循環結構程序設計

三種基本循環控制結構

使用while語句實現循環
先判斷條件表達式,后執行循環體語句

while (循環條件表達式)
{ 
    循環體
}

用do-while語句實現循環
先無條件地執行循環體,然后判斷循環條件是否成立

do
{
   語句;
}
  while(表達式);

用for語句實現循環

for語句的執行過程:
(1) 先求解表達式1
(2) 求解表達式2,若其值為真,執行循環體,然后執行下面第(3)步。若為假,則結束循環,轉到第(5)步
(3) 求解表達式3
(4) 轉回上面步驟(2)繼續執行
(5) 循環結束,執行for語句下面的一個語句

for(初始條件;循環條件表達式;循環的調整器)
	語句;
循環的嵌套

(1) 一般情況下,3種循環可以互相代替
(2) 在while和do–while循環中,循環體應包含使循環趨於結束的語句。
(3) 用while和do–while循環時,循環變量初始化的操作應在while和do–while語句之前完成。而for語句可以在表達式1中實現循環變量的初始化。

改變循環執行的狀態

用break語句提前終止循環
用continue語句提前結束本次循環

break語句和continue語句的區別
continue語句只結束本次循環,而不是終止整個循環的執行
break語句結束整個循環過程,不再判斷執行循環的條件是否成立

循環程序舉例
求Π的近似值
#include <stdio.h>
#include <math.h>
int main()
{  int sign=1; double pi=0,n=1,term=1;
    while(fabs(term)>=1e-6) 
    {  pi=pi+term;
        n=n+2; 
        sign=-sign; 
        term=sign/n;    
     }
    pi=pi*4;          
    printf("pi=%10.8f\n",pi);  
    return 0;
}
求斐波那契數列的前40個數
#include <stdio.h>
int main()
 {  int f1=1,f2=1,f3;  int i;
    printf("%12d\n%12d\n",f1,f2);
    for(i=1; i<=38; i++)
    {  f3=f1+f2;
       printf("%12d\n",f3);
       f1=f2;
       f2=f3;
    }
    return 0;
}
輸入一個大於3的整數n,判斷它是否是素數(質數)
#include<studio.h>
int main(){
int n,i;
print("n=?");scanf("%d",&n);
for(i=2;i<=n-1;i++)
	if(n%i==0)break;
if(i<n)printf("%d is not\n",n);
else printf("%d is \n",n);
return 0;
}
譯密碼。為使電文保密,往往按一定規律將其轉換成密碼,收報人再按約定的規律將其譯回原文。(改變為其后第4個字母)
char c;
c=getchar();                                         
while(c!=‘\n’)   
{  if((c>=‘a’ && c<=‘z’) || (c>=‘A’ && c<=‘Z’)) 
     {  if(c>='W' && c<='Z' || c>='w' && c<='z') 
            c=c-22;   
        else  c=c+4;   
     }
     printf("%c",c);                                 
     c=getchar(); 
}

程序改進
char c;
while((c=getchar())!=‘\n’)   
{  if((c>=‘A’ && c<=‘Z’) || (c>=‘a’ && c<=‘z’)) 
   {  c=c+4;         
      if(c>=‘Z’ && c<=‘Z’+4 || c>‘z’) 
          c=c-26;         
   }
   printf("%c",c);          
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM