跳转语句
break语句
(1) 只能在循环体内和switch语句体内使用break语句。
(2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3) 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
(4) 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。
continue语句
(1) continue语句的一般形式为:contonue;
(2) 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
(3) 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。
(4) 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。
goto语句
使用规则:
goto 语句标签;
goto语句可以跳转到函数中的任一标签处,使用时特别简单方便,只需要在需要跳转到的地方定义一标签label,再执行语句“goto label;”正是由于使用goto的方便,所以新人往往容易形成对它的依赖,这是一个不好的习惯,其原因在于goto。使用不当会极大破坏C程序的结构,它可能跳过变量的初始化、重要的计算语句等。
但是某些时候使用goto也确实十分合适,如跳出多重循环时。不过一般用goto实现的功能,用其他方式也能实现,此时可根据实际情况权衡利弊再做取舍。
例子:
void main(){
int a=2,b=3;
if(a<b)
goto aa;
printf("hello");
aa:printf("s");
return 0;
}
使用goto从多重循环中直接跳出
goto 语句至少有一处可显神通,它能从多重循环体中一下子跳到外面,用不着写很多次的break语句。例如:
for(......)
{
for(....)
{
for(.....)
{
// 如何冲出重重包围?
}
}
}
break;只能跳出单层的循环,return将整个函数都返回了,没法再继续了,显然也不行,所以我们想到了goto。如果是在陷入了很深层次的循环里想要跳出最外层的循环,用 goto 直接跳出却比用 break 一个循环一个循环地跳出要好得多。

浙公网安备 33010602011771号