do-while循环
其格式为:
do语句while(条件);
它的功能是完全一样的while循环,除了该条件的do-while循环进行评估,而不是之前的语句执行后,授予即使从来没有被满足的条件至少有一个执行的语句 。 例如,下面的示例程序呼应任何您输入的号码,直到您输入0。
| | 输入号码(0结束):12345 您输入:12345 输入号码(0结束):160277 您输入:160277 输入号码(0结束):0 您输入:0 |
的do-while循环的条件,以确定在循环结束时,通常使用被确定在循环语句本身,在前面的情况类似,块内的用户输入是被用来确定如果循环已结束。 事实上,如果你从来没有在前面的例子中输入数值0,你可以更多的数字提示,直到永远。
for循环
其格式为:
(初始化条件;增加)语句;
其主要功能是重复语句,而条件仍是如此,像while循环。 但除此之外, 在for循环提供具体的地点,包含初始化语句, 增加语句。 因此,这个循环是专初始化一个计数器,它在每次迭代和增加执行重复动作。
它的工作原理通过以下方式:
- 执行初始化 。 一般来说,它是一个计数器变量的初始值设置。 这是只执行一次。
- 检查条件 。 如果这是真的,继续循环,否则循环结束语句被跳过(未执行)。
- 语句执行。 像往常一样,它可以是一个单一的大括号{}括起来的语句或块。
- 最后,无论是“ 增加”字段中指定的被执行,循环返回到步骤2。
使用for循环的倒计时下面是一个例子:
| | 10,9,8,7,6,5,4,3,2,1,着火了! |
的初始化和增加的字段是可选的。 他们可以保持为空,但必须写在所有情况下,它们之间的分号标志。 例如,我们可以写:(Ñ<10 ;)如果我们想指定没有初始化和没有增加,或为(;Ñ<10;Ñ+ +),如果我们想包括增加字段,但没有初始化(也许是因为在之前已经初始化变量)。
或者,用逗号(,),我们可以在任何字段中指定多个表达式包括在一个for循环,像在初始化 ,例如。 逗号运算符(,)是一个表达式分隔符,分隔多个表达式,其中只有一个普遍预期。 例如,假设我们希望在我们的环路初始化多个变量:
| |
这个循环将执行50次,如果我既不n或在循环中被修改:
n从一个值为0,i与100,条件是 n =(n不等于i)。 因为n是增加了一个, 我减少一个循环的条件将成为虚假的第50次循环后,当n和i都等于50。
跳转语句。
break语句
使用break,我们可以把一个循环,即使其最终的条件尚未达成。 它可以用于结束一个无限循环,或迫使它结束之前,它的自然结束。 例如,我们要停止计数,其自然结束之前(也许是因为发动机的检查失败?)
| | 10,9,8,7,6,5,4,3,倒计时中止! |
continue语句
continue语句使程序跳过其余的回圈,在当前迭代中,如果语句块的结束已经达成,造成它跳转到以下迭代的开始。 例如,我们要在我们的倒计时跳过5号:
| | 10,9,8,7,6,4,3,2,1,着火了! |
goto语句
转到可以使程序中的另一点是绝对跳转。 你应该使用这个功能时要小心,因为它的执行导致无条件跳转忽略任何类型的嵌套限制。确定目标点,由一个标签,然后使用goto语句作为参数。 一个标签是一个有效的标识符,后跟一个冒号(:)。
一般来说,这个指令没有具体使用结构化或面向对象编程中,除了那些低层次的编程的球迷可能会发现它。 例如,这里是我们的倒计时循环使用 goto语句:
| | 10,9,8,7,6,5,4,3,2,1,着火了! |
exit函数
出口是定义的函数在cstdlib库。
exit 的目的是终止当前的程序与特定的退出代码。 它的原型是:
| |
一些操作系统使用的退出码,并可以由调用程序。 按照惯例,退出代码为0表示程序正常结束,任何其他值意味着发生了一些错误或意外的结果。
选择结构:开关。
switch语句的语法是有点奇特。 它的目的是要检查多个可能表达的恒定值。 类似的东西,我们所做的事情在本节开始的串联几个if和 else if指令。 它的形式是以下几点:开关(表达) { 情况常量constant1: 报表1组; 打破; 情况CONSTANT2: 报表2组; 打破; 。 。 。 默认值: 默认组语句 }
它的工作方式如下:switch计算表达式并检查它是否是相当于一个常量constant1,如果是,则执行语句组1,直到它找到的break语句。 当它发现这个break语句,程序跳转到年底的开关选择结构。
如果表达等于一个常量constant1它会检查反对CONSTANT2。 如果它等于这个,它会执行语句组2,休息,直到找到关键字,然后会跳转到年底的开关选择结构。
最后,如果表达式的值不匹配任何先前指定的常量(可以包括尽可能多的情况下,您要检查标签值),该方案将执行语句后的默认:标签,(如果它存在,因为它是可选的)。
下面的代码片段都具有相同的行为:
切换例子 | if-else语句相当于 |
---|---|
开关(X){ 案例1: cout <<“请x是1; 打破; 案例2: cout <<“请x是2; 打破; 默认值: cout <<“请值为x的未知”; } | 如果(×== 1){ cout <<“请x是1; } 否则,如果(X == 2){ cout <<“请x是2; } 其他{ cout <<“请值为x的未知”; } |
switch语句在C + +语言有点特殊,因为它使用的标签,而不是块。 这迫使我们把break语句的语句,我们要执行一个特定的条件后组。 否则,报表,包括那些对应的剩余其他标签也将被执行,直到最后达到开关的选择性块或break语句。
例如,如果我们后,第一组的情况下,一个没有包含一个break语句,程序将不会自动跳开关选择性块年底将继续执行剩下的语句,直到它到达一个断点指令或开关选择性块的末尾。 这使得它没有必要,包括大括号{}周围的发言的情况下,它也可以是有用的,执行相同的指令块被评估的表达式的不同可能值。 例如:
| |
请注意,交换机只能用于比较对常数的表达式。 因此,我们不能把作为标签(例如, 当n:其中 ,n是一个可变的)或范围( 情况(1 .. 3):)的变量,因为它们不是有效的C + +中的常量。
如果你需要检查范围或值不是常量,使用if和 else if语句的串联。