如何从Java中的方法返回字符串

时间:2018-08-27 11:29:08

标签: java

我编写了几行代码,使用两个类在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));
    }
}
`

1 个答案:

答案 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();
         }