我不确定为什么我的 for 循环会收到死代码警告,而且我也不知道为什么只打印了 1 个符号,而不是所需的矩形。
public static String rectangle(int row, int col, char thing) {
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
String character = "" + thing;
return character;
}
return "\n";
}
return "";
}
我尝试将字符串字符放在for循环之上,仍然是同样的错误。我也不能在我的代码中使用任何 System.out.print。我试过 int i = 1;我<= row, also tried it without the return ""; but I get an error for "no string returned."
第一个
return
将在循环的第一次迭代时终止该方法。而不是所有这些返回,你应该附加到字符串并且只在最后返回:
public static String rectangle(int row, int col, char thing) {
String result = "";
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
String character = "" + thing;
result += character;
}
result += "\n";
}
return result
}
话虽如此,使用
StringBuilder
可能会更高效:
public static String rectangle(int row, int col, char thing) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result.append(thing);
}
result.append("\n");
}
return result.toString();
}
线条
}
return "";
can never run 因为在第一个内部循环执行后,您将换行符作为字符串返回,并在该点终止函数。编译器发现了这一点,因此你得到了“死代码警告”。上面的答案(来自@Mureinik)解释了如何解决这个问题。