• C++课堂整理--第二章内容


    提前声明:

    本文内容为华北水利水电大学研究生C++课程,如有 侵权请告知,作者会予以删除

    1程序控制结构

    语句是程序的基本语法成分。程序设计语言的语句按功能可以分成三类:声明语句    指示编译器分配内存,或者提供程序连接信息。操作语句    描述对数据的处理。控制语句    用于控制程序的执行流程。

    所有程序都只能包含三种控制结构:         顺序结构、选择结构和循环结构

    1.1选择结构

    1.1.1条件运算表达式:if语句

    1>.   if表达式语句

    2>.   if表达式语句1

            else  语句2

    3>.   if表达式语句1

            else if表达式语句1

             else  语句2

    if else 的配对关系:C++规定,else 总是与它接近的if 配对

    经典案例:大小写转换

    1. #include
    2. using namespace std ;
    3. int main()
    4. { char ch;
    5. cout << "ch = ";
    6. cin >> ch ;
    7. if ( ch >= 'A' && ch <= 'Z' ) ch += 32 ;
    8. cout << ch << endl ;
    9. }

     1.1.2switch语句

    switch ( 表达式 )

        { case  常量表达式 1  :  语句 1;break;

           case  常量表达式 2  :  语句 2;break;

           case  常量表达式 n  :  语句 n;break;

           default  :  语句 n+1 }

    default 子句可选。缺省时,没有匹配值 switch 语句为空

    csae default 仅起语句标号作用,不能控制程序流程,一旦选中一个case分支后,将继续往下顺序执行语句序列,添加 break 语句可以跳出 switch 语句体,达到控制流程作用。

    1.2循环结构

    1.2.1while语句

    while( 表达式循环体 ;

    do  循环体   while( 表达式 );

    1. #include
    2. using namespace std ;
    3. int main()
    4. { cout << "Please enter list of numbers" << endl;
    5. int ValuesProcessed = 0;
    6. double ValueSum = 0;
    7. double Value;
    8. while (cin >> Value) // 键入 Ctrl-Z 结束
    9. {
    10. ValueSum += Value;
    11. ++ValuesProcessed;
    12. }
    13. if (ValuesProcessed > 0)
    14. {
    15. double Average = ValueSum / ValuesProcessed;
    16. cout << "\nAverage: " << Average << endl;
    17. }
    18. else cout << "No list to average" << endl;
    19. }

     经典例题:求最大公约数

    1. #include
    2. using namespace std ;
    3. int main()
    4. {
    5. int m , n , a , b , r ;
    6. cout << "input two integers :\n" ;
    7. cout << "? " ; cin >> m ;
    8. cout << "? " ; cin >> n ;
    9. if ( m > n)
    10. {
    11. a = m ;
    12. b = n ;
    13. }
    14. else
    15. {
    16. a = n ;
    17. b = m ;
    18. }
    19. r = b ;
    20. while ( r != 0 )
    21. {
    22. r = a % b ;
    23. a = b ;
    24. b = r ;
    25. }
    26. cout << m << " and " << n << " maximal common divisor is : " << a << endl ;
    27. }

     

    1.2.2for语句

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

      循环体 ;

    执行顺序:

    1) 先执行“表达式1”。

    2) 再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环。

    3) 执行完循环体后再执行“表达式3”。

    不同形式的for语句结构

     经典例题求菲波那切数列:

    1. //Fibonacci 数列:0,1,1,2,3,5,8,13,21,34,……
    2. // f0 = 0
    3. // f1 = 1
    4. // fn = fn-1 + fn-2 ( n >= 2 )
    5. #include
    6. using namespace std ;
    7. int main()
    8. { int n, i, a0, a1 ;
    9. cout << "n = " ;
    10. cin >> n ;
    11. a0 = 0 ; a1 = 1 ;
    12. cout << a0 << " "<< a1 << " ";
    13. for ( i = 2; i <= n/2 ; i ++ )
    14. {
    15. a0 = a0 + a1 ;
    16. a1 = a1 + a0 ;
    17. cout << a0 << " "<< a1 << " ";
    18. if ( i % 5 == 0 ) cout << endl ;//每10个数进行换行一次
    19. }
    20. cout<< (i-1)*2<
    21. if ( n > (i-1)*2 ) cout << a0+a1 << endl ;// n为奇数,输出最后一项
    22. }

     

     1.2.3嵌套循环

    一个循环语句的循环体内又包含循环语句,称为嵌套循环

     1.3判断表达式

    输出1100之间的奇数

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

               if ( i % 2 ) cout << i << ' \t ' ;

    判断a是否等于b

      if ( a - bcout << a << " != " << b << endl ;

             else  cout << a << " == " << b << endl ;

    一个点不在坐标轴原点上

      while ( x && y ) ……

    1.4转向语句

    break 语句

        无条件地结束switch语句,或循环语句,转向执行语句块的后续语句

    continue 语句

        用于循环体中,终止当前一次循环

    while  (  E1 ){   语句 1;  if  ( E2 )  break  ; 语句 2;}  break终止while循环

    while ( E1 ){   语句 1; if ( E2continue ;语句 2;}  continue跳过语句2,重新执行 while语句

    goto语句

        无条件转向语句,与标号语句配合使用,一般形式为:

         goto  标号

        标号 语句

         int  i =1,  sum = 0 ;

         loop :  if  ( i < = 100 )

                   { sum += i ++;

                      goto  loop ;}

        cout << sum ;  

    2.第二章小结

     C++ 构成选择结构的条件语句有 if 语句和 switch 语句。

        if 语句适用于条件判断比较复杂的分支结构。嵌套if语句采用就近匹配的原则。  

        用括号{ }改变复合语句结构,可以改变ifelse的匹配关系。

        switch语句根据一个表达式的不同可能值决定选择执行,适用于条件判断比 

        较简单的多路选择。

    循环结构有 whlie 语句、 do_while 语句和 for 语句。

        while语句和do_while语句主要用于条件循环。

        for语句是C++中很灵活的循环语句,既可以用于控制次数循环,也可以用于条

        件循环。

    转向语句是程序的流程控制的补充机制。 C++ 的转向语句主要有:break、

        continuegoto语句。

  • 相关阅读:
    No module named ‘haystack.urls‘等各种django报错解决方案
    若依前后分离版框架下Springboot java引入Mqtt接受发送消息
    互关互关互关
    MybatisPlus自设模板:填补原模板在controller层对CURD操作的缺乏
    vue根据接口数据配置动态路由(动态配置后台管理系统路由权限)
    React Native填坑之旅--Flow篇
    MongoDB - 聚合查询
    【Linux】进程等待
    FreeRTOS 消息队列 详解
    (01)ORB-SLAM2源码无死角解析-(54) 闭环线程→闭环检测:寻找闭环候选关键帧 LoopClosing::DetectLoop()
  • 原文地址:https://blog.csdn.net/qq_39397927/article/details/127880761