C语言程序设计——循环结构

循环结构
条件控制的循环
计数控制的循环
标记控制的循环
for 语句格式:
for(表达式1(循环初始条件);表达式2(循环控制条件);表达式3(循环转化条件)){
语句1
语句2
}
输入数据的求和
输入数据的求和

#include 
int main(){
 int a;
 int sum=0,m;
 for (int a = 0; a < 5; i++) 
 scanf("%d",&m)
  sum =sum+m;
 }
printf("sum =%d\n",sum );
}

循环可终止原则
1.执行循环体时必须改变一个或多个变量的值
2.保证经有限次重复后,循环控制条件不再满足
while(当型循环)
表达式1;
{
语句1
语句2
表达式3;
}
do-while(直到型循环)
do{
语句1
语句2
表达式1;
}while(表达式2);

//例子:递推法
#include 
int main(){
 int a =1;
 int b=1;
 do{
  a =(a+1)*2;
  b++;
}
 while(b<10);
  printf("x=%d\n",a);
  return 0;
}

选择循环语句的一般原则
for:循环次数已知
while:循环次数未知,循环的次数有一个给定的条件来控制
do-while:循环次数未知,循环的次数有一个给定的条件来控制,至少要执行一次
递推法的基本思想
递推法:利用问题本身所具有的一种递推关系来求解问题的一种方法
递推:是指从一直的舒适条件出发,一句某种递推关系,初次推出所要计算的中间结构和最终结果
本质:把一个负责的计算过程转化为一个简单过程的多次重复计算
正向顺推:从已知条件出发,想着所求问题前进,最后与所求问题联系起来
反向逆推:所求问题出发,向已知条件靠拢,最后与已知条件联系起来

//猜数游戏
#include 
#include 
#include
int main (){
 int a;
 int b;
 int counter;
 srand(time(NULL));                      //将时间数进行输出
 magic =rand()%100+1;                    //生成一个随机数
 counter =0;                             //计数器
 do{
  printf("please guess a number\n", ); //输出一个数
  scanf("%d",&a)           
   counter++;
 if (a>b)
 {
  printf("it is so big!\n" );
  }
 else if (a<b)
 {
  printf("it is too small!\n");
  }
 else{
  printf("you are  right!\n" );
 }
}while(a!=b);
printf("counter =%d\n",counter );
return 0;
}
//99乘法表
#include
int main(){
 int a;
 int b;
 for (int a = 1; a < 10; a++)
 {
  for(int b=1;b<10;b++){
   printf("%4d\n",a*b );
  }
  printf("\n");
  }
 return 0;
}

goto END:无条件转向语句
穷举法:
优点:算法简单,逻辑清晰,易于理解,程序易于实现
缺点:运算量较大
只适用于"有几种组合",“是否存在”,求解补丁方程等类
break 语句:跳出循环

 //例子
 #include 
 int main(int argc, char const *argv[])
 {
  int iCount;
  for (int iCount = 0; iCount < 10; iCount++)
  {
   if (iCount==5)   //判断iCount 等于5时
   {
    printf("跳出\n");  //跳出循环
    break;
   }
      printf("%d\n",iCount );
  }
   return 0;
 }

continue 语句:返回到循环头部继续执行
作用:跳过循环体中尚未执行的部分,直接执行下一次的循环操作

#include 
 int main(){
  int mix;                        
  for (int mix= 0; mix < 10; mix++) //执行10次循环
  {
   if (mix==5)                 //判断条件 如果iCount 等于5侧跳出
   {
    printf("Continue\n", ); //跳出本次循环
    continue;                //输出循环的次数
     }
  }
  return 0;
 }

continue和break区别
continue结束本次循环
break结束整个循环过程,不在判断执行循环的条件是否成立

你可能感兴趣的:(C,C语言程序设计)