Java死代码警告+没有形成矩形?

问题描述 投票:0回答:2

我不确定为什么我的 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."

java
2个回答
1
投票

第一个

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();
}

0
投票

线条

 }
        return "";

can never run 因为在第一个内部循环执行后,您将换行符作为字符串返回,并在该点终止函数。编译器发现了这一点,因此你得到了“死代码警告”。上面的答案(来自@Mureinik)解释了如何解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.