此方法必须 return String 类型的结果,Java
This method must return a result of type String, Java
我是 Java 的新手。 Eclipse 给我错误
此方法必须return类型为
的结果
我想要 return 字符串 str,如果我将 str 放在所有 for 循环之后,我会得到未初始化的局部变量。我如何编码才能使
public String getQuadraticFactors() {
String str;
ArrayList<Integer> prFactors = new ArrayList<Integer>();
ArrayList<Integer> qsFactors = new ArrayList<Integer>();
ArrayList<Integer> p = getPRIntegerFactors(a), r = getPRIntegerFactors(a), q = getQSIntegerFactors(c),
s = getQSIntegerFactors(c);
System.out.println(p + "*********" + q);
System.out.println(p.get(0));
// String str2 = "jjjhljl";
String str2 = "(" + p + "x + " + q + ")(" + r + "x +" + s + ")";
for (int k = 0; k < p.size(); k++) {
// System.out.print(k);
for (int l = 0; l < q.size(); l++) {
// System.out.print(k);
for (int m = 0; m < p.size(); m++) {
for (int n = 0; n < q.size(); n++) {
if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b
&& q.get(l) * s.get(n) == c) {
System.out.println(a);
System.out.println(p.get(k) * r.get(m));
return str = "(" + p.get(k) + "x + " + q.get(l) + ")(" + r.get(m) + "x + " + s.get(n) + ")";
}
}
}
}
}
}
您有可能永远不会达到您的 return 语句。要解决此问题,只需将 return 语句添加到方法的最底部,即 return 是一个空字符串或您要发送的任何值以表示
if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b
&& q.get(l) * s.get(n) == c)
这个 if 语句在所有情况下都是错误的。有时您永远不会 运行 遇到此 if 语句为假的情况,但 JVM 只需要保证它有东西 return 如果它为假。
实际上,当您的一些 for 循环没有 运行 时,您需要有一个替代方案。只需用更好的值初始化您的 str ,在底部检查它。如果为 null 则抛出异常或对其进行初始化(取决于您的代码风格)。当你在返回之前检查它总是有一个值(或者你抛出一个异常)。
我是 Java 的新手。 Eclipse 给我错误
此方法必须return类型为
的结果我想要 return 字符串 str,如果我将 str 放在所有 for 循环之后,我会得到未初始化的局部变量。我如何编码才能使
public String getQuadraticFactors() {
String str;
ArrayList<Integer> prFactors = new ArrayList<Integer>();
ArrayList<Integer> qsFactors = new ArrayList<Integer>();
ArrayList<Integer> p = getPRIntegerFactors(a), r = getPRIntegerFactors(a), q = getQSIntegerFactors(c),
s = getQSIntegerFactors(c);
System.out.println(p + "*********" + q);
System.out.println(p.get(0));
// String str2 = "jjjhljl";
String str2 = "(" + p + "x + " + q + ")(" + r + "x +" + s + ")";
for (int k = 0; k < p.size(); k++) {
// System.out.print(k);
for (int l = 0; l < q.size(); l++) {
// System.out.print(k);
for (int m = 0; m < p.size(); m++) {
for (int n = 0; n < q.size(); n++) {
if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b
&& q.get(l) * s.get(n) == c) {
System.out.println(a);
System.out.println(p.get(k) * r.get(m));
return str = "(" + p.get(k) + "x + " + q.get(l) + ")(" + r.get(m) + "x + " + s.get(n) + ")";
}
}
}
}
}
}
您有可能永远不会达到您的 return 语句。要解决此问题,只需将 return 语句添加到方法的最底部,即 return 是一个空字符串或您要发送的任何值以表示
if (p.get(k) * r.get(m) == a && p.get(k) * s.get(n) + q.get(l) * r.get(m) == b
&& q.get(l) * s.get(n) == c)
这个 if 语句在所有情况下都是错误的。有时您永远不会 运行 遇到此 if 语句为假的情况,但 JVM 只需要保证它有东西 return 如果它为假。
实际上,当您的一些 for 循环没有 运行 时,您需要有一个替代方案。只需用更好的值初始化您的 str ,在底部检查它。如果为 null 则抛出异常或对其进行初始化(取决于您的代码风格)。当你在返回之前检查它总是有一个值(或者你抛出一个异常)。