• 范磊 C++ 第7章 循环语句


      1 // section_7.cpp : Defines the entry point for the console application.
      2 //范磊 C++ 第7章 循环语句
      3 
      4 #include "stdafx.h"
      5 #include "iostream"
      6 
      7 using namespace std;  //cout 和 endl 前面不用加 std:: 了.
      8 
      9 //7.1 循环语句的前身--go to 语句
     10 void fun1()
     11 {
     12     int i;
     13 
     14     i = 1;
     15 number:
     16     i++;
     17     std::cout << "*" ;
     18     if(i < 10)
     19     {
     20         goto number;
     21     }
     22     cout << "
     程序结束 
    ";
     23     cout << "*********
    ";
     24 }
     25 
     26 //------------------------------------------------------
     27 //7.3 while语句
     28 void fun2()
     29 {
     30     int i;
     31     
     32     i = 1;
     33 
     34     while(i < 10)
     35     {
     36         cout << "*" ;
     37         i++ ;
     38     }
     39     cout << "
     程序结束 
    " ;
     40     cout << "*********
    " ;
     41 }
     42 
     43 //------------------------------------------------------
     44 //7.3.1 带运算符的while语句
     45 void fun3()
     46 {
     47     int a;
     48     cout << "请输入一个大于0,小于100的数: " ;
     49     cin >> a ;
     50     while(a>0 && a<100)
     51     {
     52         cout << "a:" << a << endl ;
     53         a++ ;
     54     }
     55 }
     56 
     57 //------------------------------------------------------
     58 //7.3.2 以字符为条件的while语句
     59 void fun4()
     60 {
     61     char choice;
     62 
     63     choice = 'y' ;
     64     while(choice == 'y' || choice == 'Y')
     65     {
     66         cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
     67         cout << "再看一遍? 是按y,否按n :" ;
     68         cin >> choice ;
     69     }
     70     cout << "程序执行完毕,再见. 
    " ;
     71 }
     72 
     73 //------------------------------------------------------
     74 //7.3.3 限定while的循环次数
     75 void fun5()
     76 {
     77     int count;
     78     int many;
     79 
     80     cout << "你想看几次? "; 
     81     cin >> many ;
     82     count = 0 ;
     83     while(count < many)
     84     {
     85         cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
     86         count++ ;
     87     }
     88     cout << "
    程序执行完毕,再见. 
    
    " ;
     89 }
     90 
     91 //------------------------------------------------------
     92 //7.3.4 continue语句
     93 //让程序执行到循环体的某处就不再继续执行后面的语句,
     94 //可以用continue语句使跳转到循环开始的地方,继续执行.
     95 void fun6()
     96 {
     97     int i;
     98     i = 0;
     99     
    100     while(i < 3)
    101     {
    102         i++ ;        //第一次执行 i++后,i == 1.
    103         if(i == 1)    //因为i == 1,所以执行if{ }里面的continue语句,跳回去判断while(i < 3) 这里了.
    104         {            //下面的cout << "i的值为:" << i << endl ;这行代码就忽略了.
    105             continue;
    106         }
    107         cout << "i的值为:" << i << endl;    //当没有执行continue语句时,就按顺序执行到这行语句了.
    108     }
    109 }
    110 
    111 //------------------------------------------------------
    112 //7.3.5 break语句
    113 //执行break语句,可以强制退出循环,执行循环体下面的语句.
    114 void fun7()
    115 {
    116     int i;
    117     i = 0;
    118 
    119     while(i < 3)
    120     {
    121         i++ ;
    122         if(i == 1)
    123         {
    124             break;        //如果没有break 语句的话,循环里面的cout << "i 的值为:" << i << endl; 会执行3次的.
    125         }                //但是执行了break,直接跳出了while(i < 3) { }的循环体,所以什么都没输出.
    126         cout << "i 的值为:" << i << endl ;
    127     }
    128 }
    129 
    130 //------------------------------------------------------
    131 //7.4 do{ }  while();语句
    132 //程序执行时先执行一次do{ }里面的的语句,然后再判定while( )里面的条件
    133 //如果条件为真,则返回到do{ }再执行一次,然后从新判定while( )条件是否符合,如此循环.
    134 void fun8()
    135 {
    136     int many;
    137     cout << "你想看几次? :" ;
    138     cin >> many;
    139     do        //先把 do{ }的语句执行一遍.
    140     {
    141         cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
    142         many-- ;
    143     }while(many > 0);        //注意这里要加 ; 号.
    144     cout << "
    程序执行完毕,再见. 
    
    " ;
    145 }
    146 
    147 //------------------------------------------------------
    148 //7.5 for循环
    149 //for(表达式1; 表达式2; 表达式3)
    150 //执行时,先执行表达式1,然后再判断表达式2是否为真,若真,则执行for{ }里面的语句,执行完以后再执行表达式3,
    151 //执行完表达式3后,再反过头来判定表达式2是否为真,若真,则再次执行for{ }里面的语句,执行完以后再次执行表达式3.
    152 //如此循环,直到表达式2为假,则运行for{ } 后面的语句.
    153 void fun9()
    154 {
    155     int many;
    156     int count;
    157     cout << "你想看几次? :" ;
    158     cin >> many;
    159     for(count = 0; count < many; count++)
    160     {
    161         cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
    162     }
    163     cout << "
    程序执行完毕,再见. 
    
    " ;
    164 }
    165 
    166 //------------------------------------------------------
    167 //7.5.1 灵活的for循环
    168 //for循环可以对多个变量进行初始化操作,初始化语句之间用 , 号分开.
    169 void fun10()
    170 {
    171     for(int x = 0, int y = 0, int z = 0; x < 3; x++, y++, z++) //定义变量同时也赋值.
    172     {
    173         cout << "x:" << x << "y:" << y << "z:" << z << endl ;
    174     }
    175 }
    176 
    177 //------------------------------------------------------
    178 //7.5.2 条件为空的for循环
    179 void fun11()
    180 {
    181     int i;
    182     i = 0;
    183 
    184     for( ; i < 5; )        //表达式1为空,表达式3为空.可以理解为执行了"什么都不做"这个动作.
    185     {
    186         i++ ;
    187         cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
    188     }
    189 
    190 }
    191 
    192 //------------------------------------------------------
    193 //7.5.2 三个条件为空的for循环.
    194 //要注意想办法跳出循环,否则会一直无线循环.
    195 void fun12()
    196 {
    197     int i;
    198     i = 0;
    199 
    200     for( ; ; )
    201     {
    202         if(i < 5)    //如果没有这个if语句,for 语句则进行无线循环.因为第2个表达式是空的,可以认为是0.
    203         {
    204             cout << "
    问君能有几多愁,恰似一江春水向东流.
    " ;
    205             i++ ;
    206         }
    207         else
    208         {
    209             break ;        //用于跳出for() 循环.
    210         }
    211     }
    212 }
    213 
    214 //------------------------------------------------------
    215 //7.5.3 执行为空的for循环
    216 void fun13()
    217 {
    218     for(int i = 0; i < 5; cout << "i:"  << i++ << endl )    //第3个表达式其实是一个语句.
    219     {
    220         //cout << "i:"  << i++ << endl   //我们应该尽量这样写,不要把语句写到for()里面.
    221         ;    //没有任何东西,为空. 这个 { }可以在这样的情况下省略掉.
    222     }
    223 }
    224 
    225 //------------------------------------------------------
    226 //7.5.4 嵌套的for循环
    227 //在forx循环里面还有循环
    228 void fun14()
    229 {
    230     int a;
    231     int b;
    232     char c;
    233 
    234     cout << "多少行? " ;
    235     cin >> a;
    236     cout << "多少列? " ;
    237     cin >> b;
    238     cout << "什么字? " ;
    239     cin >> c;
    240 
    241     for(int i = 0; i < a; i++)            //外层循环,决定多少行.
    242     {
    243         for(int j = 0; j < b; j++)        //内层循环,决定多少列.
    244         {
    245             cout << c ;        
    246         }
    247         cout << "
    " ;
    248     }
    249 }
    250 
    251 //------------------------------------------------------
    252 //7.6 switch case语句
    253 //switch 其实就是特殊的if语句.
    254 void fun15()
    255 {
    256     int choice;
    257 
    258     cout << "请输入一个数:" ;
    259     cin >> choice ;
    260     switch(choice)
    261     {
    262     case 0: cout << "你输入的是0. 
    " ;
    263         break;    //break是一定要加的,用来跳出switch 语句的.不加的话,后果很严重.
    264     case 1:
    265         {
    266             cout << "你输入的是1. 
    " ;
    267             break;
    268         }
    269     case 3: cout << "你输入的是3. 
    " ;
    270         break;
    271     case 4: cout << "你输入的是4. 
    " ;
    272         break;
    273     case 5: cout << "你输入的是5. 
    " ;
    274         break;
    275     case 6: cout << "你输入的是6. 
    " ;
    276         break;
    277     case 7: cout << "你输入的是7. 
    " ;
    278         break;
    279     case 8: cout << "你输入的是8. 
    " ;
    280         break;
    281     case 9: cout << "你输入的是9. 
    " ;
    282         break;
    283     case 10: cout << "你输入的是10. 
    " ;
    284         break;
    285     default:cout << "你输入的不是0-10之间的数字. 
    " ;
    286     }
    287     cout << "程序结束.
    " ;
    288 }
    289 /*
    290 其实switch等同于下面
    291 if(choice == 1)
    292 {
    293     cout << "你输入的是0. 
    " ;
    294 }
    295 if(choice == 2)
    296 {
    297     cout << "你输入的是2. 
    " ;
    298 }
    299 if(choice == 3)
    300 {
    301     cout << "你输入的是3. 
    " ;
    302 }
    303 */
    304 
    305 
    306 //-----------------------------------------------------
    307 //7.6.2 switch的菜单功能
    308 void fun16()
    309 {
    310     int quit;
    311     quit = 0;
    312     for( ; ;)
    313     {
    314         char choice;        //choice 定义为一个字符型变量.
    315         cout << "(0)零 (1)壹 (2)贰 (3)叁 (4)肆 (5)伍 (6)陆 (7)柒 (8)捌 (9)玖 (q)退出 :" ;
    316         cin >> choice ;
    317         switch(choice)
    318         {
    319         case '0' : cout << "你输入的是零. 
     " ;    //因为choice是字符型变量,所以 0 要加多个 ' ' 号,作为一个字符.
    320             break;                                    //如果0不加' ', 则认为0是一个数字.
    321         case '1' : cout << "你输入的是壹. 
     " ;
    322             break;
    323         case '2' : cout << "你输入的是贰. 
     " ;
    324             break;
    325         case '3' : cout << "你输入的是叁. 
     " ;
    326             break;
    327         case '4' : cout << "你输入的是肆. 
     " ;
    328             break;
    329         case '5' : cout << "你输入的是伍. 
     " ;
    330             break;
    331         case '6' : cout << "你输入的是陆. 
     " ;
    332             break;
    333         case '7' : cout << "你输入的是柒. 
     " ;
    334             break;
    335         case '8' : cout << "你输入的是捌. 
     " ;
    336             break;
    337         case '9' : cout << "你输入的是玖. 
     " ;
    338             break;
    339         case 'q' : quit = 1;
    340             break;
    341         default : cout << "你输入的不是0-9之间的有效数字. 
     " ;
    342         }
    343         if(quit == 1)
    344         {
    345             break;    //这个break用于跳出switch语句.
    346         }
    347         cout << "程序结束. 
    " ;
    348     }
    349 }
    350 //第7章主要例子完毕.
    351 //----------------------------------------------------------
    352 
    353 
    354 int main(int argc, char* argv[])
    355 {
    356     //fun1();        //7.1 循环语句的前身--go to 语句
    357     //fun2();        //7.3 while语句
    358     //fun3();        //7.3.1 带运算符的while语句
    359     //fun4();        //7.3.2 以字符为条件的while语句
    360     //fun5();        //7.3.3 限定while的循环次数
    361     //fun6();        //7.3.4 continue语句
    362     //fun7();        //7.3.5 break语句
    363     //fun8();        //7.4 do while语句
    364     //fun9();        //7.5 for循环
    365     //fun10();        //7.5.1 灵活的for循环
    366     //fun11();        //7.5.2 条件为空的for循环
    367     //fun12();        //7.5.2 三个条件为空的for循环
    368     //fun13();        //7.5.3 执行为空的for循环
    369     //fun14();        //7.5.4 嵌套的for循环
    370     //fun15();        //7.6 switch语句
    371     //fun16();    //7.6.2 switch的菜单功能
    372     
    373     return 0;
    374 }
  • 相关阅读:
    16、使用limit offset 分页时,为什么越往后翻越慢?如何解决?
    字符串的排列
    从上往下打印二叉树
    栈的压入、弹出序列
    二叉树的镜像
    合并两个排序的链表
    链表中倒数第K个结点
    调整数组顺序使奇数位与偶数前面
    在O(1)时间删除链表结点
    从头到尾打印链表
  • 原文地址:https://www.cnblogs.com/adalovelace/p/4013849.html
Copyright © 2020-2023  润新知