我不确定为什么我的for循环会收到一个死代码警告,我也不知道为什么只打印了一个符号,而不是所需的矩形。
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; i <= row
,也试过不使用return "";
,但是我得到了一个错误“没有字符串返回”。
3条答案
按热度按时间l7wslrjt1#
第一个
return
将在循环的第一次迭代时终止该方法,而不是所有这些返回,您应该附加到字符串并只在末尾返回:话虽如此,使用
StringBuilder
可能性能更高:cs7cruho2#
台词
将不会正常运行,因为在第一个内循环执行之后,你将以字符串的形式返回新行字符,并在该点终止函数。编译器发现了这一点,因此你得到了“死代码警告”。上面的答案(@Mureinik)解释了如何修复这个问题。
rslzwgfq3#
这里的问题是,一旦内部for循环第一次结束,它将返回一个空行,最后一个return语句是无用的,只有当row为0时才会执行,第二个问题是,你已经在循环内声明了变量,但它只能在循环内访问,所以你必须在循环之前声明它,将其作为答案返回,所以把第一个return语句替换成string或者stringBuilder或者你正在使用的任何东西,然后在循环外的方法里声明一个。
这就是代码的样子: