繁体   English   中英

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

[英]How do I return a string from a method in 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));
    }
}
`

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 语句,并抛出一个异常,但随后您需要在调用方法中处理此异常。

编辑:正如 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();
         }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM