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());
}
Run Code Online (Sandbox Code Playgroud)
递归循环是由语句引起的
return WriteArray().toString();
Run Code Online (Sandbox Code Playgroud)
在WriteArray()方法的最后.
如果您希望方法只打印它打印的内容,那么您应该将其声明为void,即
public static void WriteArray()
Run Code Online (Sandbox Code Playgroud)
否则,您需要在打印时保存所有打印的行,例如
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();
}
Run Code Online (Sandbox Code Playgroud)
其他一些可能的改进:
MyColors变量直接放在循环中,即for (String lines : MyColors).MyColors并{ "Red", "Blue", "Green"}直接返回值.Java命名约定:只有类名以大写字母开头,其他所有内容都以小写字母开头,例如它应该是arrayColors和不是ArrayColors.