java循环中不改变循环变量是规范吗?

Three-C


首先告诉你结论:是规范

那么这个规范是必须遵守的吗?

结果是不是的。在写代码过程中,必须保证代码的可读性,稳定性,尽可能的不要出现bug。而在这个基础上,代码却是由业务驱动的,可能由于业务的特性,你不得不打破这一条规律,那么你只需要保证的是,不要造成死循环,在循环中一定要有break等字眼来终结循环条件。

因此,这里需要明确2点:

1.代码的规范之所以是规范,是为了保证代码在大部分情况下,都能保证自身的稳定性。

2.以业务驱动的代码逻辑,并不会完全遵循代码本身的规范,具体的实现并不能依靠规范本身去维护代码的稳定性,而需要你自身的逻辑去补充。


方方方的伪宅


你好,不知道你说的这个改变循环变量是指的foreach的循环变量名不能改变还是说for循环中不能改变集合中的元素。

如果是第一种,我认为应该算是一种语言规范,尤其在foreach循环中比较明显,其实这个变量名一般不变是因为我们不会对这个变量名称做过多的处理,它其实就是一个中间的临时变量,类似于我们有一个数组,数组的每一个元素在参与逻辑处理时首先都会先获取到这个元素,比如Array[i],这时候我们就可以直接用它来处理业务逻辑,但是由于foreach循环中无法这样来获取,所以就给了一个临时变量,而且每一次循环的变量名称都一样。

如果是第二种,我认为这个肯定不是规范,而且我们在很多业务中都会去修改对应的变量,包括更新或者删除,当然处理这些业务的时候需要使用迭代器,但是循环变量肯定是可以修改的。


低调着末路


你应该是说遍历集合,显示改变集合大小会触发fast fail异常对吧?用迭代器就完事了!java 8后用stream遍历


分享到:


相關文章: