浅谈Java中的中断控制流程语句

Java语言的流程控制特性,包括控制跳转语句和中断控制流程语句两大类。

控制跳转语句包括条件跳转和循环跳转。

而中断控制流程语句包括break,continue,return等。

这里浅谈一下中断控制语句。

先说说循环跳转的起源,在很久之前,人们最开始采用的是goto语句来完成程序执行流的跳转功能。但随着实践和研究的深入,人们发现“过多地使用goto语句是有害的”,后来经过许多大牛们的商量,一致同意goto这种乱跳的程序有很多弊端。

goto语句的优点是可以灵活跳转,但缺点也很明显,随意性比较大,如果不加限制,就会破坏结构化设计风格,导致代码晦涩难懂,降低可读性,因此也容易导致不容易发现的bug。

后来人们通过论证得出,一个程序只需要三种流程即可实现所有想要的流程,顺序,分支,循环。以上的内容全部都有论文论证,这里仅仅是做个大概了解(而且我也很难去求证论文原文)。

于是乎,现代编程语言就用阉割版的goto语句——“循环语句”代替了goto功能,因为循环可以看做是程序只允许向前跳转。

但是这样写的程序明显功能不够强大,因此后来引入了所谓的中断控制语句:break,continue,return,而goto作为保留字(像不像是一种被封印的九尾妖狐)。实际上break,continue语句也是可选的,即使不用它们使用条件判断也可以表达同样的逻辑含义。

从此我们可将break,continue,return,看做是goto语句的小弟,并且将它们的跳转能力做了一定的限制,因为Java中的它们只允许在循环体中使用(break还能在switch中使用,return可以在任意位置但只能跳转到方法返回)。这样丰富了原本goto语句的语义,让程序的可读性大大增加,同时限制了goto的能力,让程序的安全性也可以得到一定保障。

比如,break语句的作用是中断单层循环,跳出循环体,也就是实现程序跳转到当前循环体右大括号末尾。

continue语句的作用是,实现程序跳转到当前循环体的开始处(for循环是跳转到条件控制语句),重新执行循环体。

return语句的作用是,实现程序跳转到当前方法的结束,并附带返回值给调用者。

但即便如此,人们还是忘不了goto语句带来的便利,因此Java还提供了一种带有标签的break语句,常用于跳出多重嵌套的循环语句(用于避免的嵌套很深的循环语句中发生不可预料的事情,通过额外的条件判断实现各个循环的检测又显得很不方便,于是可采用这种方法)。

以上就是个人对中断控制流程语句的理解。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值