使用for循环返回字符串

时间:2015-10-31 02:03:24

标签: java loops return

我试图返回?,?,?的值执行主函数时。但是,我只能得到?,作为答案。 我不想使用System.out.println(尽管它完成了这项工作),因为我想将值返回给另一个函数。第一个返回工作正如我所希望的那样,但在第二部分中,我不确定如何连接2返回和for循环,因为在我用return返回println后无用

public static void main(String[] args)
{
  Scanner kb = new Scanner(System.in);
        r r = new r();
        System.out.println(r.func(3));
}

  public static String func(int size)
  {
    if(size == 1)
    return "?";
    else
    {
    for (int i = 1; i < size; i++)
    {
     return "?,";
      }
 return "?";
    }
  }

4 个答案:

答案 0 :(得分:2)

我认为你在这里建立一个递归方法(你可能用一行ternary operation),如

return (size == 1) ? "?" : "?,"+func(size-1);

您可以使用StringBuilder

迭代地执行此操作
StringBuilder sb = new StringBuilder();
for (int i = 0; i < size; i++)
{
    if (i != 0) {
        sb.append(", ");
    }
    sb.append("?");
}
return sb.toString();

答案 1 :(得分:0)

稍微修改了代码,你试图在for循环中使用return语句。您必须了解,一旦调用了return语句,指定的值就会自动从函数中取出。你不能使用它的多个版本。尝试下面的代码,看看是否有效。我做了一个字符串,并在每次需要时添加“?”。

public static void main(String[] args)
{
  Scanner kb = new Scanner(System.in);
        r r = new r();
        System.out.println(r.func(3));
}

  public static String func(int size)
  {
     String value = "";
     if(size == 1)
        return "?";
     else {
        for (int i = 1; i < size; i++){
        value += "?,";
        }

        value+= "?";
        return value;
}

}

答案 2 :(得分:0)

尽量不要返回for循环..

public static String func(int size)
      {String retval ="";
        if(size == 1)
        return "?";
        else
        {
        for (int i = 1; i < size; i++)
        {
            retval= retval+"?,";
          }
     return retval+"?";
        }
      }

答案 3 :(得分:0)

return关键字会立即停止在方法内执行代码,并将值传递到调用地点。

您必须从循环中删除return并将其放置。接下来,您必须在某处保存当前结果 - 您的问号以逗号分隔。

让我们定义名为result的{​​{1}}类型的新变量,并用空字符串初始化它:

String

其次,我们必须编写循环并迭代1到X之间的值(在此示例中:您的String result = ""; 变量):

size

之后我们在for(int i = 1; i <= size; i++) { result += "?,"; } 变量中有适当数量的问号。是时候使用result关键字将值传递到您调用方法的位置:

return

现在main方法中的return result; 方法将获得我们返回的内容 - 带有问号的字符串。