【问题标题】:"return" statement with "for loop"带有“for循环”的“return”语句
【发布时间】:2011-08-26 15:34:40
【问题描述】:

在java编程语言中,如何在return语句中实现“for循环”

我有这个代码

public String toString(){
return String.format(num[0]+" - "+num[1]+" - "+num[2]+" - "+num[3]+" - "+num[4]+" - "+num[5]+" - "+num[6]+" - "+num[7]+" - "+num[8]+" - "+num[9]+" - "+num[10]+" - "+num[11]+" - "+num[12]+"\n");
}

如果 num 数组有 1000 个项目,并且我想返回所有这些元素,我该如何做到这一点,而不是像以前一样一一写出来..

我尝试使用 for 循环但给我一个错误

public String toString(){
for(int j=0 ; j<100 ; j++)
return String.format(num[j]+" - ");
}   

【问题讨论】:

  • 你需要告诉我们这是什么语言!!
  • 我猜是 C# 还是 Java。
  • java ,抱歉我忘了提

标签: java return-value return


【解决方案1】:

如果您在循环内执行return,它会中断循环。您想要做的是返回一个带有所有其他字符串 concat 的大字符串。做一个

public String toString(){
for(int j=0 ; j<100 ; j++)
s = s +" "+num[j];
}  

其中 s 是一个缓存字符串。然后,在循环之后,执行return s;,这样你就拥有了它们。

【讨论】:

  • 我用过但给我错误(.class预期)这是什么意思?
  • 这可能意味着您尝试执行源文件 (.java) 而不是编译后的字节码 (.class)。
  • 使用 StringBuilder 并在循环内执行 sb.append(" ").append(num[j]);。然后在循环之后return sb.toString();
【解决方案2】:

如果这是 C#,您可以使用:

return String.Join(" - ", num);

如果这是 Java,你可以使用 StringUtils.join:

return StringUtils.join(num, " - ");

【讨论】:

  • 这是一个java代码,谢谢你的解释,但你能告诉我如何初始化(StringUtils)我之前没用过。我应该在哪里写:在循环内?
  • 您必须下载 Apache Commons jar 并将其包含在您的类路径中,然后将包导入您正在使用的类中。不再需要 for 循环,这一行会处理它。
【解决方案3】:

只需在return 之前将字符串连接在一起即可。你也不需要String.format。更好的是 - 如果这是 C# 或 Java,请使用字符串生成器。

【讨论】:

    【解决方案4】:

    标准的 14.1 正常和突然完成语句节说:

    break (§14.15)、continue (§14.16) 和 return (§14.17) 语句 导致控制权的转移,可能会阻止正常完成 包含它们的语句。

    如果你想一次返回多个元素,那么你可以使用一个集合来聚合返回的值。

    【讨论】: