【发布时间】:2020-12-29 18:07:18
【问题描述】:
我正在完成我的教授给我的作业,它指出我不能在我的代码中使用 break,但是没有 break 代码不会需要时不要停下来。我尝试了几个在互联网上找到的不同选项,但没有任何效果。这是我的代码:
while (x >= 0 && x <= 11 && y >= 0 || x >= 11 && x <= 22 && y >= -7) {
x = v0 * t*Math.cos(Math.toRadians(a));
y = v0 * t*Math.sin(Math.toRadians(a)) - g * (t*t) / 2;
System.out.printf("%3.2f\t%7.3f\t%7.3f\n", t, x, y);
if (x <= 20 && x >= 17 && y <= -2 && y >= -7) {
hitTarget = true;
break;
}
t += 0.05;
}
【问题讨论】:
-
设置一个标志或将其放入您可以返回的方法中。
-
教授们,不要再这样对你的学生了;有实际研究表明,与使用布尔标志的代码相比,人类更容易理解使用
break的代码来达到相同的效果。 dl.acm.org/citation.cfm?doid=2989026.2950065 -
@kaya3 就是说,我(从 1.1 开始一直在使用 Java)总是很难立即确定中断通过控制的点。重构为具有早期返回的方法几乎总是更干净。