gpt4 book ai didi

java - 从静态方法调用和写入数组时如何停止无限循环

转载 作者:行者123 更新时间:2023-11-29 07:50:29 24 4
gpt4 key购买 nike

Java 新手:

我正在练习这个东西:从方法调用数组到main方法时如何停止无限循环?

public static String[] ArrayColors() {
String MyColors[] = { "Red", "Blue", "Green"};
return MyColors;
}

public static String WriteArray() {
for (int i = 0; i < 2; i++) {
for (String lines : ArrayColors()) {

switch (i) {
case 0:
lines = lines.replace("Red", "Blood");
break;
case 1:
lines = lines.replace("Blue", "Ocean");
break;
case 2:
lines = lines.replace("Green", "Giant");
break;
}

System.out.println(lines);
}
System.out.println();
}
return WriteArray().toString();
}

public static void main(String[] args) {
System.out.println(WriteArray());
}

最佳答案

递归循环是由语句引起的

return WriteArray().toString();

WriteArray() 方法的末尾。

如果您希望该方法只打印它打印的内容,那么您应该将其声明为void,即

public static void WriteArray()

否则,您需要在打印时保存所有打印的行,例如

public static String WriteArray()
{
StringBuilder sb = new StringBuilder(); // Buffer to store the printed lines

for (int i = 0; i < 2; i++) {
for (String lines : ArrayColors()) {

switch (i) {
case 0:
lines = lines.replace("Red", "Blood");
break;
case 1:
lines = lines.replace("Blue", "Ocean");
break;
case 2:
lines = lines.replace("Green", "Giant");
break;
}

System.out.println(lines);
sb.append(lines); // Store the printed line
}
System.out.println();
sb.append("\n"); // Store a blank line
}
return sb.toString();
}

一些其他可能的改进:

  • 您不需要访问颜色的方法,因此您可以将 MyColors 变量直接放入循环中,即 for (String lines : MyColors)
  • 如果您仍想使用某个方法,则根本不要声明 MyColors 并返回 { "Red", "Blue", "Green"} 值直接。
  • 尽量遵循 Java 命名约定:只有类名以大写字母开头,其他所有名称都以小写字母开头,例如它应该是 arrayColors 而不是 ArrayColors

关于java - 从静态方法调用和写入数组时如何停止无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com