跳转语句中断继续转到退出
中断指令:
使用 break 我们可以留下一个循环,即使它的结束条件没有得到满足。它可用于结束无限循环,或强制它在自然结束之前结束
语法是
break;
示例 :我们经常在 switch
情况下使用 break
,即一旦满足 i 开关的情况,则执行该条件的代码块。
switch(conditon){
case 1: block1;
case 2: block2;
case 3: block3;
default: blockdefault;
}
在这种情况下,如果满足情况 1 然后执行块 1,我们真正想要的只是要处理的块 1,而是一旦处理了块 1,剩余块,块 2,块 3 和块默认也被处理,即使只有情况 1 被满足为了避免这种情况,我们在每个块的末尾使用 break,如:
switch(condition){
case 1: block1;
break;
case 2: block2;
break;
case 3: block3;
break;
default: blockdefault;
break;
}
因此只处理了一个块,控制器移出开关循环。
break 也可用于其他条件和非条件循环,如 if
,while
,for
等;
例:
if(condition1){
....
if(condition2){
.......
break;
}
...
}
继续说明:
continue 指令使程序在当前迭代中跳过循环的其余部分,就好像已经到达语句块的结尾一样,导致它跳转到下一次迭代。
语法是
continue;
示例考虑以下内容:
for(int i=0;i<10;i++){
if(i%2==0)
continue;
cout<<"\n @"<<i;
}
产生输出:
@1
@3
@5
@7
@9
我的代码只要满足 i%2==0
条件 continue
被处理,这会导致编译器跳过所有剩余的代码(打印 @和 i),并且循环的递增/递减语句被执行。
https://i.stack.imgur.com/Fbuep.jpg
goto 指令:
它允许绝对跳转到程序中的另一个点。你应该小心使用此功能,因为它的执行会忽略任何类型的嵌套限制。目标点由标签标识,然后标签用作 goto 指令的参数。标签由有效标识符后跟冒号(:)组成
语法是
goto label;
..
.
label: statement;
注意: 强烈建议不要使用 goto 语句,因为它很难跟踪程序的控制流程,使程序难以理解且难以修改。
https://i.stack.imgur.com/Li8ZR.jpg
示例:
int num = 1;
STEP:
do{
if( num%2==0 )
{
num = num + 1;
goto STEP;
}
cout << "value of num : " << num << endl;
num = num + 1;
}while( num < 10 );
输出:
value of num : 1
value of num : 3
value of num : 5
value of num : 7
value of num : 9
只要条件 num%2==0
满足,goto 就会将执行控制发送到 do-while
循环的开头。
退出功能:
exit
是 cstdlib
中定义的函数。exit
的目的是使用特定的退出代码终止正在运行的程序。它的原型是:
void exit (int exit code);
cstdlib
定义了标准退出代码 EXIT_SUCCESS
和 EXIT_FAILURE
。