循环"count down"无结果



我得到这样的声明:

public String countDown(int start, int end, int increment)

我正在寻找一个可以提供以下输出的输出:

(10 8 6 4)

如果countDown被调用start = 10end = 3increment = 2。它会一直递减 2,直到到达终点。

我知道如何构造 for 循环,只是不知道如何让它与字符串一起使用。

这是我对代码的内容:

String countD = "";
for (int i = start; i <= end; i = i - increment) {
    countD = countD + i;
    countD = countD + " ";
}
return countD;

我假设开始大于结束,并且我已经处理了开始=结束的情况。我遇到的问题是 countD 现在返回一个空白字符串"<[]>",我不知道为什么。

您已将i设置为 10,循环条件是i必须小于或等于 endend设置为 3。10 不小于 3 :)

调试此类内容的一个有用方法是在循环中插入 print 语句,以便您可以看到代码实际上正在执行。例如,像这样简单的事情:

for (int i = start; i <= end; i = i - increment) {
            System.out.println("In the loop!");
            countD = countD + i;
            countD = countD + " ";
            System.out.println(countD);
}
我相信

你的循环逻辑有错误。如果开始大于结束,则应使用 i >= end ,而不是 i <= end

两个问题:

  1. 您需要将i <= end更改为 i >= end .

  2. String 是 Java 中的不可变对象(构造后无法更改)。

    您需要改用StringBuilder,并在完成后将其转换为String

所以你的代码应该看起来像这样:

StringBuilder countD = new StringBuilder();
for (int i = start; i >= end; i = i - increment)
    countD.append(i).append(" ");
return countD.toString();

问题出在条件i <= end,如果你从一个更高的数字开始,它应该是相反的,那么一切都很好。

最新更新