C++入门基础 循环模块

循环功能简介

循环功能是人让计算机做多次模拟,减少人的消耗,提高解题效率和解题方法。

毕竟计算机做循环最多消耗一下CPU和内存,人要做循环就得消耗脑(shi)力(wu)了。

循环是偷懒的必备技能。

计算机可以在短时间批量处理成千上万条指令,但是这些指令如果全是人来编辑输入,是不是得懒的半死呢。

所以想要用编程中的循环来偷懒,我们就要学会找规律,找到题目中的规则,构造模型,利用循环合理偷懒。

当然循环结构要和我们已经学的顺序结构和分支结构相结合,后面还要和数组进行结合。

说了那么多了,引入正题,

循环结构分为for语句和while语句,循环可以嵌套,称为多重循环。

循环语句格式如下:

for 循环语句

1、语句格式

格式1

for(控制变量初始化表达式;条件表达式;增量表达式){

         语句1;

         语句2;

……

}

说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式程序风格提示:

格式2:

for(控制变量初始化表达式;条件表达式;增量表达式)

         语句1

说明:语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。只执行一个语句可省略大括号。

2、语句执行过程

for语句的执行过程可由以下4步来描述。

(1)执行“控制变量初始化语句”,使控制变量获得一个初值。

(2)判断控制变量是否满足“条件表达式”,若满足条件则执行一遍循环体,否则结束整个for语句,继续执行for循环下面的句子。

(3)根据增量表达式,计算出控制变量所得到的新值

(4)自动转到第(2)步

 

注:结束时最后执行的是第二步,当条件不满足时循环终止。

 

3、语句格式举例

  (1)将控制变量从1变到100,增量为1

    for(int i=1;i<=100;++i)

  (2)将控制变量从100变到1,增量为-1

    for(int i=100;i>=1;--i)

  (3)控制变量从7变到77,增量为7

    for(int i=7;i<=77;i+=7)

  (4)控制变量从20变到2,增量为-2

    for(int i=20;i>=2;i-=2)

  (5)按所示数列改变控制变量值:99、88、77、66、55、44、33、22、11、0,增量为-11

    for(int j=99;j>=0;j-=11)

  (6)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。

for(int i=1,j=2;i<=99&&j<=100;i+=2,j+=2)

 

需要说明的是:可以在for循环“ 控制变量初始化语句”中声明变量(如上面最后3个例子),这些变量只在for循环结构中有效,离开了该for结构,变量就无效了。

例题:利用for循环,计算输出1+2+…+100的和

#include <iostream>
using namespace std;

int main ()
{ 
    int sum=0;
    for (int i=1; i<=100 ; ++i) 
       sum+=i;    //i初始值1,终值为100,每次增量为1   
   cout << sum;
    return 0;
}

输出1—100之间所有偶数。
    【方法1】可以想到对于1-100之间的100个数字i,直接重复进行判断,如果i是偶数,则输出i的值。

 

#include <iostream>
using namespace std;
int main()
{
   for (int i=1;i<=100;i++) //对于1至100之间的每个数,都重复操作
     if (i%2==0) cout<<i<<"  ";     //如果i为偶数,则输出i的值
   return 0;
}

程序中,将1-100之间的所有数字都列举出来,然后一一判断,符合偶数条件的,就输出。这种思想,本质上是穷举。穷举法保证在求解的过程中,所有可能解都会判断到,不会丢解。当然缺点就是有时候效率不高。

while 循环语句

1、语句格式

格式1

while(条件表达式){

         语句1;

         语句2;

}

说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。

程序风格提示:写while循环语句时,循环体的语句相对于while缩进两格。

 

格式2

while(条件表达式)

         语句1;

说明:语句1是while循环语句的循环体,它将在满足条件的情况下被重复执行。

 

2、语句执行过程

(1)计算作为循环控制条件表达式的值,得到逻辑真或假,假定用M表示。

(2)若M为真,则执行了一遍循环体,否则离开循环,结束整个while语句的执行。

(3)循环体的所有语句执行结束后,自动转向第(1)步执行。

 

 

3、格式举例

(1)  i=0;

     while (i<10)

       ++i;

功能:当i的值小于10,重复执行++i语句

(2)  cin>>x;

     while(x<0)

       cin>>x;

功能:当输入的数据小于0时,重复读数据。

例题:

求s=1 +2 +3……+n,当加到第几项时,s的值会超过1000?

#include <iostream>
using namespace std;
int main ()
{
  int n=0,s=0;
  while (s<=1000)
  {
    ++n;
    s+=n;
  }
  cout<<n;
  return 0;
}

循环一脉博大精深,这里只做简单介绍,若有问题或不足,欢迎指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值