程序设计总结2(12.9)

第六章循环控制结构

一、知识

1.条件控制的循环(特别地:标志变量控制的循环)

   计数控制的循环

2.用于结构化程序设计的三种基本结构

   ①顺序结构 ②选择结构 ③循环结构

   其中循环结构分为当型循环结构和直到型循环结构

3.for语句:

   更适合于计数控制的循环

    *需要注意两个分隔符";"不可缺少

      for( ; ; )后加上分号,起延时的作用

    逗号表示式:循环变量可以超过一个eg. for(i=1,j=n;i=j;i++,j- -)      

4.while语句:

   更适合于循环次数未知、条件控制的循环

    *注意while( )后加上分号可导致死循环

   while中的计数变量控制要注意是i++还是++i;

   特别注意需要用while解决的问题很多需要反着找(逆向思维)

5.do-while语句:直到型循环

   在循环底部进行循环条件测试,循环至少执行一次。(这说明在第一次判断为假的情况下do-while与while不等价)

   适合于循环次数未知、条件控制的循环

6.局部变量与复合语句

    局部变量在循环语句中定义的变量,只能在循环语句中使用,一般在循环内赋值或紧靠循环赋值

    循环中常用复合语句来执行多个工作

7.一些新学的函数:

   setw():cout<<setw(x)<<a<<endl;在cpp的<iomanip>

   //其中的setw(x)的作用是控制输出的a的宽度为x//

  puts():就是printf(“...\n”) <studio.h>

  floor()/ceil():向下取整和向上取整<math.h>

  exit(code):结束程序:当code的值为0时,表示程序正常退出;当code的值为非0值时,表示程序出现某种错误后退出/在cpp的<cstdlib>

  rand( ):伪随机数生成(具体为啥是假的我现在都没搞懂233),产生[0,32767]之间的随机数 在cpp的<csdlib>

     产生[0,b-1]之间的随机数 magic=rand( )%b;

     产生[a,a+b-1]之间的随机数 magic=rand( )%b+a;

    真正随机需要设个种子需要加一条srand(a);a即是seed,任何数都可以

8.多组测试数据

      有效输入重复,无效输入退出

      while(scanf("%d",&x)!=EOF)

      while(scanf("%d",&x)!=1)//注意这里是不等于输入的变量个数//

      while(cin>>x)

     上述的三条语句中内涵了输入语句,不需要在循环体中再写入

9.流程的转移控制

     ①goto语句:无条件转移到标号(label)所标识的语句处去执行

      Label命名同变量名2 goto一般和if联用3没有特殊情况禁用

     ②break语句:用于退出switch或一层循环结构

     (连跳可用goto)

     ③continue语句:用于结束本次循环、继续执行下一次循

10.标志变量控制的循环

eg.

bool find=0;

for(i=1;!find;i++)

{

  if(...{...;find=1;}//找到了//

}

二、应用

累加累乘问题/找最大最小

筛选同类/特殊数据并进行一定操作(eg.一个整数含3的个数

循环结构是解决递归,递推问题的主要手段之一(特别是需要暴力的时候)

猜你喜欢

转载自blog.csdn.net/qq_43642681/article/details/84927636