使用'return'打破Java中的for循环是不好的风格?

Lem*_*ony 14 java

我正在为CS类做一个基本Java项目.该项目有一个嵌套在while循环中的for循环.

不允许使用break早结束for循环的方式.我发现它return似乎具有相同的效果break.使用它return作为打破循环的方式是不好的风格?

我的for循环必须检查三个不同的语句,但如果它找到一个是真的那么它应该直接结束而不继续检查其余的语句.

我试图在while循环中放置一个布尔运算符来控制for循环,但是这不会控制for循环内部的内容,直到for循环结束.

如果return不返回任何东西也很重要吗?

299/01/11更新:非常感谢大家的评论.我发现阅读所有辩论真的很有帮助.

我跟我的导师谈过,结果是为了获得满分,我也不应该使用return.

所以我发现在'for'循环中设置布尔值的建议确实很有帮助,因为我不知道你能做到这一点.

pax*_*blo 15

如果断开循环后的第一件事就是return陈述,它们只会是等价的.

无论如何,如果你的讲师不允许break,他们可能也不会允许return.

您应该知道这些规则背后有很好的基础(防止意大利面条代码并使编写可维护代码更容易),但有时它们会过于强烈地执行.

例如,该细分市场没有什么不可读的:

if (x == 0)
    return 0;
return x - 1;
Run Code Online (Sandbox Code Playgroud)

即使它有多个return陈述.

对于无多重回归人群而言,所谓的首选解决方案是:

int y = x - 1;
if (x == 0)
    y = 0;
return y;
Run Code Online (Sandbox Code Playgroud)

在我看来,这既不易读也不浪费空间.

当你有非常复杂的逻辑和人们跳过的箍以避免break和/或return导致条件接近不可读时,就会出现真正的问题.

听听你的讲师 - 毕竟,他们是控制你获得的成绩的人.然后,一旦你进入现实世界,你就可以从教条主义转向实用主义并构建自己的思想.

请参阅此处,了解有关教育机构以外的这些问题的一些好建议.


Nik*_*bak 6

首先,如果你明智地使用它,它的使用方式并不break.
虽然我理解为什么你的教授break现在坚持编码(因为很多人,特别是初学者,倾向于'过度使用'),但没有理由完全禁止它.

使用return作为打破循环的一种方式是不好的风格?
就个人而言,我认为你会没事的:代码只会变得更简单.但显然你的教授是这里的高级权威.整个问题非常主观,因此我无法告诉他.

但同样,无论你的教授sais是什么,return在循环中使用并不是一种糟糕的风格.


Sim*_*eon 5

这个问题似乎进入了一个非常古老的尚未解决的论点,即" 单一与多重方法退出点 ".

因此,如果在循环中使用返回令您(或您的老师)感到担忧,您(或他)可以在这里查看.

回答你的问题.在我(而不仅仅是我的)意见中使用循环返回绝对可以.

但请注意,过度使用它可能会降低代码的可读性(有关详细信息/示例,请参阅链接的答案).