}
}while(counter>0);
cout<<\< 输出: How many Hellos?:0 Hello! Counter is:-1 do...while语句语法: do statement while(condition); 首先执行statement,然后计算condition。如果condition为真,就执行循环;否则终止循环。 注意: a、如果需要确保循环至少执行一次; b、要确保初始条件为假时不执行循环体,使用while循环; c、除非可确保代码的功能清晰易懂,否则不要再循环中使用break和continue。总会有更清晰的方法来完成同样的任务; d、不要使用goto语句。 5、for循环 使用while循环进行编程时通常需要3步:设置初始条件、测试条件是否为真、在每次循环中修改条件变量。for循环将这3个步骤(初始化、测试和递增或递减)合并到一条语句中。for语句由关键字for和一对括号组成,括号中是3条用分号分隔的语句: for(initialization;test;action) { } initialization为初始条件(初始化),可以是任何合法的C++语句,但通常用于创建并初始化一个计数变量。test进行测试,可以是任何合法的C++表达式,其功能与while循环中的条件相同。action是要执行的操作,虽然可以是任何合法的C++语句,但其通常是将计数变量递增或递减。 ... //此程序用于演示for循环 #include for语句语法: for(initialization;test;action) Statement; initialization语句用来初始化计数变量或为循环作准备。test可以是任何合法的C++表达式,每次循环都将对其进行测试。如果test为真,就执行for循环体,然后执行action语句(通常是对计数器进行递增或递减)。 高级for语句: a、对多条语句进行初始化和递增 初始化多个变量、测试复合逻辑表达式、执行多条语句的情况很常见。initialization语句和action语句可以是用逗号分隔的多条C++语句。 //此程序用于演示for循环 #include b、在for语句中使用空语句 for语句中的任何一条语句都可以省略。通过使用空语句,可以省略for语句中的第一和第三个子句,创建一个行为与while循环相同的for循环。空语句用分号表示。 for(int i=1,j=0;i<5;i++,j++) std::cout<<\< for(counter=0;counter<5;counter++) std::cout<<\ \; std::cout<<\< //此程序用于演示在for语句中使用空语句 #include 这种用法不常用,这个程序只是用来演示for循环的灵活性。 c、空的for语句 //此程序用于演示空的for语句 #include int counter=0; int max; std::cout<<\; std::cin>>max; for(;;) { } return 0; if(counter break; std::cout<<\ \< int counter=0; for(;counter<5;)//等价于while(counter<5) { } std::cout<<\< counter++; std::cout<<\ \; 该for语句被简化到极致,省略了初始化、测试和操作部分。虽然这个程序看起来有些荒谬,但有时候确实需要使用for(;;)或while(true)。 d、空for循环 由于在for循环头中可以做很多事,有时候不需要循环体做任何事。这种情况下,必须在循环体中使用空语句(;)。分号可以与循环头位于同一行,但这样容易被人忽略。 //此程序用于演示在for循环中使用 #include 在循环体中没有什么可以做,因此使用空语句(;)。但这不是一个良好设计的for循环:操作语句执行的操作太多。较好的做法是: for(int i=0;i<5;i++) e、循环嵌套 任何循环都可以嵌套到另一个循环中。外层循环没执行一次,内层循环将完整执行一遍。 //此程序用于演示嵌套for循环 //打印9*9乘法表 #include using namespace std; int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { } cout< cout<<\ for(int i=0;i<5;std::cout<<\< ; return 0; } } cout< return 0; 6、使用switch语句控制程序流程 如果if和if...else语句嵌套过深,这些语句很容易令人迷惑,C++提供了一种替代品。if语句只能处理一种取值,而switch语句能够为多个取值提供不同的分支。switch语句的通用格式如下: switch(expression) { case valueOne:statement; break; case valueTwo:statement; break; ...... case valueN:statement; break; default: } 其中expression可以是任何合法的C++表达式,statement可以是任何合法的C++语句或语句块。注意case值必须是整数或者结果为整数的表达式,在这种表达式中不能使用关系运算符或bool运算符。 如果某个case值与表达式匹配,程序跳转到该case后面的语句处执行,知道遇到break语句或到达switch语句块末尾为止。如果没有匹配的值,程序跳转到默认(default)分支处执行。如果既没有匹配的值,也没有默认分支,程序将跳出switch语句。 注意: a、如果根本不需要default分支,可使用它来检测不可能出现的情况,并打印错误消息。这对调试很有帮助。 b、如果case语句后面没有break语句,程序将执行下一条case语句,虽然有时候需要这样做,但通常是错误的。如果需要让程序继续执行下去,请用注释来指出你并非忘记了使用break。 //此程序用于演示switch语句的用法 #include statement;