首页 > 代码库 > 范磊 C++ 第7章 循环语句

范磊 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 << "\n 程序结束 \n"; 23     cout << "*********\n"; 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 << "\n 程序结束 \n" ; 40     cout << "*********\n" ; 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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ; 67         cout << "再看一遍? 是按y,否按n :" ; 68         cin >> choice ; 69     } 70     cout << "程序执行完毕,再见. \n" ; 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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ; 86         count++ ; 87     } 88     cout << "\n程序执行完毕,再见. \n\n" ; 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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ;142         many-- ;143     }while(many > 0);        //注意这里要加 ; 号.144     cout << "\n程序执行完毕,再见. \n\n" ;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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ;162     }163     cout << "\n程序执行完毕,再见. \n\n" ;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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ;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 << "\n问君能有几多愁,恰似一江春水向东流.\n" ;205             i++ ;206         }207         else208         {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 << "\n" ;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. \n" ;263         break;    //break是一定要加的,用来跳出switch 语句的.不加的话,后果很严重.264     case 1:265         {266             cout << "你输入的是1. \n" ;267             break;268         }269     case 3: cout << "你输入的是3. \n" ;270         break;271     case 4: cout << "你输入的是4. \n" ;272         break;273     case 5: cout << "你输入的是5. \n" ;274         break;275     case 6: cout << "你输入的是6. \n" ;276         break;277     case 7: cout << "你输入的是7. \n" ;278         break;279     case 8: cout << "你输入的是8. \n" ;280         break;281     case 9: cout << "你输入的是9. \n" ;282         break;283     case 10: cout << "你输入的是10. \n" ;284         break;285     default:cout << "你输入的不是0-10之间的数字. \n" ;286     }287     cout << "程序结束.\n" ;288 }289 /*290 其实switch等同于下面291 if(choice == 1)292 {293     cout << "你输入的是0. \n" ;294 }295 if(choice == 2)296 {297     cout << "你输入的是2. \n" ;298 }299 if(choice == 3)300 {301     cout << "你输入的是3. \n" ;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 << "你输入的是零. \n " ;    //因为choice是字符型变量,所以 0 要加多个 ‘ ‘ 号,作为一个字符.320             break;                                    //如果0不加‘ ‘, 则认为0是一个数字.321         case 1 : cout << "你输入的是壹. \n " ;322             break;323         case 2 : cout << "你输入的是贰. \n " ;324             break;325         case 3 : cout << "你输入的是叁. \n " ;326             break;327         case 4 : cout << "你输入的是肆. \n " ;328             break;329         case 5 : cout << "你输入的是伍. \n " ;330             break;331         case 6 : cout << "你输入的是陆. \n " ;332             break;333         case 7 : cout << "你输入的是柒. \n " ;334             break;335         case 8 : cout << "你输入的是捌. \n " ;336             break;337         case 9 : cout << "你输入的是玖. \n " ;338             break;339         case q : quit = 1;340             break;341         default : cout << "你输入的不是0-9之间的有效数字. \n " ;342         }343         if(quit == 1)344         {345             break;    //这个break用于跳出switch语句.346         }347         cout << "程序结束. \n" ;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 }

 

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