我编写了几行代码,使用两个类在Java中查找数字的倍数。如何从方法返回字符串。
class Multiples {
String printMult(int x) {
int i,j;
for (i = 0; i <= x; i++) {
for(j = 0; j <= x; j++) {
return i + "*" + j;
}
}
}
}
public class Chkmult {
public static void main(String[] args) {
Multiples num = new Multiples();
System.out.println(num.printMult(8));
}
}
`
答案 0 :(得分:0)
x
可能为0,并且您的for循环不会迭代。
在这种情况下,您的return statement
将永远无法到达。
要成为可编译的代码,您的方法必须为每种可能的情况使用一个return statement
。
将代码更改为此:
class Multiples{
String printMult(int x){
int i,j;
for(i = 0;i <= x;i++){
for(j = 0;j <= x;j++){
return i + "*" + j;
}
}
return "no iterations occurred.";
}
}
public class Chkmult{
public static void main(String[] args){
Multiples num = new Multiples();
System.out.println(num.printMult(8))
}
}
您还可以删除第二个return语句,并引发Exception,但随后需要在调用方法中处理此异常。
编辑: 正如AxelH已经指出的那样,您想要做的可能是在for循环本身中没有return语句。这样,您第一次在此进行迭代时,该方法将结束,并且仅返回部分信息。
您可以尝试将该方法更改为如下形式:
String printMult(int x){
int i,j;
StringBuffer buf = new StringBuffer("");
for(i = 0;i <= x;i++){
for(j = 0;j <= x;j++){
buf.append(i + "*" + j + "\n");
}
}
return buf.toString();
}