【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);          
}

posted @ 2021-08-30 20:10  Clancy_gang  阅读(386)  评论(0编辑  收藏  举报