【问题标题】:How do I return a string from a method in java如何从java中的方法返回字符串
【发布时间】:2018-08-27 11:29:07
【问题描述】:

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

【问题讨论】:

  • 从方法返回任何东西的方式相同。您编写的这段代码是否以某种特定方式失败?有错误吗?出乎意料的结果?
  • 首先在SOP语句中会有分号;
  • 返回 i + "*" + j;此行返回一个字符串,您已经返回了一个字符串,您要的是什么?
  • 你想要得到的预期结果是什么?
  • 你试过编译吗?编译了吗?

标签: java


【解决方案1】:

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

【讨论】:

  • 是的,但我猜他最想打印从0 * 08 * 8 的乘法表,否则他不需要那些循环;)
  • @AxelH 是的,他可能需要改进他的代码,毫无疑问您的 StringBuffer/concatenation 注释是有效的,但他的问题是他的代码无法编译,因为他没有提供每种可能情况的返回语句。
  • 这就是为什么我同意你的回答。我的观点只是一个假设(简单但仍然没有证据),所以你的答案在这一点上是唯一有效的。
猜你喜欢
  • 2016-05-19
  • 2021-03-11
  • 2015-03-29
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-27
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多