【发布时间】:2019-07-09 18:53:48
【问题描述】:
这是我在大学课堂上一直在思考的一个问题,我需要听取其他人的观点。在编码实践方面,我搜索并找不到与此问题非常相似的另一个问题。
(示例是用 Java 编写的)
我写代码的时候,一般会写这样的方法:
public void myMethod(int one, int two) {
if (one >= two) return;
// do things
if (two != one) return;
// do other things
}
而不是像这样写方法:
public void myMethod(int one, int two) {
if (one < two) {
// do things
if (two != one) {
// do other things
}
}
}
同样,我会这样写我的循环:
for (int i = 0; i < x.length; i++) {
if (x[i].getValue() > 4) continue;
// do things
if (!xConditionTwo) continue;
// do other things
}
而不是这样:
for (int i = 0; i < x.length; i++) {
if (x[i].getValue() <= 4) {
// do things
if (xConditionTwo) {
// do other things
}
}
}
如此处所见,我按顺序(从顶线到底线)查看事物,如果某些东西不是我们正在寻找的东西,那么退出方法/循环对我来说是有意义的,我们不'不需要 else 语句。
但是,当我与我的大学导师交谈时,他们都同意,如果有人要编写这样的代码,他们将不会被雇用,因为该人无法找出不需要使用 continue 的算法/返回。
我对每个人的问题是:什么时候可以像这样使用 continue/return 来中断,如果有的话?为什么这被认为是不好的做法,我如何避免使用没有 else 的 if 语句来避免额外的缩进?
【问题讨论】:
-
你试过用谷歌搜索这个w3schools、codeburst、tutorialspoint或stackoverflow
-
我理解 continue 和 break 之间的区别,前三个链接没有客观地概述为什么这是不好的做法。但是,第四个链接看起来很有希望,我来看看。编辑:第四个链接没有详细说明方法中的返回语句。这对某些人来说可能是一个静音点,但我觉得应用程序在循环和方法之间有很大不同。