zoukankan      html  css  js  c++  java
  • 一起学 c++(六)循环语句、转移语句

    问一道小学的题,1+2+3….+99+100的结果是多少,我想这个对于我们来说很easy的,5050,但是如果在程序中,我们怎么实现呢,难道真要一个一个加吗,显然太麻烦了,这个时候我们需要循环语句来帮我们解决这个问题

    1.       for语句

    for语句的表达式是:

    for(表达式1;表达式2;表达式3)

    {

               语句;

    }

    表达式1:通常用于给循环变量赋初值,一般是赋值表达式,如果在for循环外已经赋初值了,可以省略表达式1

    表达式2:用于设立循环条件,一般为关系表达式或逻辑表达式

    表达式3:修改循环变量的值,一般也是赋值语句

    3个表达式根据不同的情况,均可省略。它的执行顺序是:

    1)         先计算表达式1的值

    2)         计算表达式2的值,若为真则执行循环体一次,否则跳出循环

    3)         计算表达式3的值,返回2)

    在整个循环过程中,表达式1只计算一次,表达式23则可能计算多次,循环体可能执行多次,或者一次也没执行

    那我们就来计算一下1100的和吧:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num=0,s=0;

         for (num=0;num<=100;num++)

         {

             s=s+num;

         }

         cout<<s<<endl;

    }

    因为我们之前对num已经赋初值了,所以for的第一个表达式可以省略:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num=0,s=0;

         for (;num<=100;num++)

         {

             s=s+num;

         }

         cout<<s<<endl;

    }

    特别要注意的是:如果我们遇到for(;;)这个就是无限循环

    2.       while语句

    while语句的表达式:

    while(表达式)

    {

               语句;

    }

    当条件为真的时候,while语句会反复执行语句。我们继续来用1100加法来做:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num=0,s=0;

         while(num<=100)

         {

             s=s+num;

             num++;

         }

         cout<<s<<endl;

    }

     

    3.       do…while语句

    do…while语句的形式:

    do

    {

               语句

    }

    While(表达式);

    它的语义是:先执行循环语句一次,再判断表达式的值,若为真则继续循环,否则终止循环。

    do…whilewhile的区别就在于do…while先执行后判断,所以它至少要执行一次循环,而while是先判断后执行,如果条件不满足则一次循环体剧也不执行。

    例如:

             #include <iostream>

    using namespace std;

    void main()

    {

         int num=0,s=0;

         do

         {

             s=s+num;

             num++;

         } while (num<=100);

         cout<<s<<endl;

    }

     

    我们还要注意以下几点:

             if语句,while语句中,条件表达式后面都不能加分好,而在do..while语句的条件表达式后面则必须加分号。

             Do…while语句也可以组成多重循环,而且可以和while语句相互嵌套。

             dowhile之间的循环体由多个语句组成时,必须用大括号括起来组成一个复合语句。

             Do…whilewhile可以相互替换,但要注意修改循环条件。

     

     

    在循环语句的程序运行时,经常需要中断循环。

    C++提供了4中转移语句:

             returnbreakcontinuegoto

    其中return语句只能出现在被调函数中,用于函数返回,我们会在函数部分讲。

    那么来看看其他3个转移语句

    1.       break语句

    break语句只能用在switch或循环语句中,其作用是跳出本层循环,去执行后面的程序。

    我们继续拿前面1加到100的例子,这回我还要用上面的循环,但是只想在加到50就断,只算150的和,那么我们改成这样:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num,s=0;

         for (num=0;num<=100;num++)

         {

             s=s+num;

             if (num ==50)

                  break;

         }

         cout<<s<<endl;

    }

    2.       continue语句

    continue的意思是:结束本次循环,不再执行循环中continue语句后的语句,转入下一个判断和执行。与break相比,break是跳出循环,continue是跳过本次循环,所以要分清。

    这回我们还是来看1加到100,这回我们算1加到100,但是不加50这个数,所以我们应该这么写:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num,s=0;

         for (num=0;num<=100;num++)

         {

             if (num ==50)

                  continue;

             s=s+num;

            

         }

         cout<<s<<endl;

    }

     

    3.       goto语句

    goto也叫无条件转移语句,它比较特殊的地方是有个标识语句,形式如下:

    goto 语句标号;

    语句标号就是标识符规定书写的符号,放在某一句前,后面加,然后goto的会自动转移去执行语句标号后面的内容。

    我们继续拿break的例子来说,我们循环不变,但是只想得到150 的和,可以这么写:

    #include <iostream>

    using namespace std;

    void main()

    {

         int num,s=0;

     

         for (num=0;num<=100;num++)

         {

            

             s=s+num;

             if (num ==50)

                  goto Jieguo;

         }

    Jieguo:

         cout<<s<<endl;

    }

     

     

     

    个人网站http://www.ravedonut.com/

  • 相关阅读:
    Login02
    工作笔记
    vim 使用笔记
    linux 命令常用笔记
    百度面试测试开发工程师内容
    sublime 快捷键
    如何升级php版本---从php5.5.12 升级php7.1.5 wamp实践
    如何新建自己的服务
    php.ini 文件中配置的意义注释
    linux 如何打包代码
  • 原文地址:https://www.cnblogs.com/panjiangfy/p/cxuexi6.html
Copyright © 2011-2022 走看看