【发布时间】:2013-12-30 17:43:15
【问题描述】:
这应该是结果,一个小程序在等式上找到答案:
a*x + b*y + c*z = d
我仍在研究算法,但它要求我在我有一个返回语句时给出一个返回语句。还是编译器会说,因为当 if 条件的评估为假时,return 语句可能不会被执行?
public static String zoekAlleOplossingen(int a, int b, int c, int d,
int begingrens, int eindgrens) {
int y = begingrens, z = begingrens;
for (int x = begingrens; x < eindgrens; ++x) {
if (((a*x) + (b*y) + (c*z)) == d) {
return "" + a + "*" + x + " + " + b + "*" + y + " + " + c + "*" + z
+ " = " + d + "";
}
}
}
对于那些询问我为什么使用退货的人(请有人嵌入图片)。这是一个 UML 图,您可以清楚地看到在本练习中希望在此方法中使用字符串作为返回类型。:
【问题讨论】:
-
当
if语句在for循环的整个持续时间内没有被执行时,你的函数会发生什么?在这种情况下,函数会返回什么? -
你不想在循环中有一个
return,当它到达时,函数将立即退出,除非你打开;你想要返回 1 行。它要求您将return放在循环之外,因为如果您不进入循环并且也满足if的条件,则永远不会到达return。 -
@splrs 是正确的。您是否打算多次调用此函数以获得预期结果?否则,您应该简单地打印出结果而不是返回它。
-
一些建议 - 您的大部分问题只是对您所询问的实际问题的干扰。将来,您应该只询问手头的问题。以这个问题为例 - 您可以删除函数参数,简化 if 语句条件、for 循环边界和 return 语句,然后给我们(而不是告诉我们您的代码打算解决什么问题)并询问为什么编译器会说它所说的。此外,您应该包含完整的、实际的错误消息,而不是仅仅解释它。也可以随意编辑这个问题 - 从长远来看,问题都在这里。
-
@bblincoe 感谢您的回复。正如我所想的那样,正如你们确认的那样,不一定会执行返回,这会导致错误。我知道您只能在方法中返回一个值。但是是否可以在一种方法中使用多个具有相同值的返回值?
标签: java