打印数字并选择合适的循环

时间:2018-11-06 22:13:45

标签: java

问题是:写一个传递int n并返回从n倒数到1的String的方法。例如,Ex countDown(3)打印321

我的代码是:

public class CountDown {
    public static void main(String[] args) {
        for(int n = n; n> 0; n--;) {
            System.out.println("i=" + i);
        }
    }
}

我是编码的初学者,但不确定如何解决此问题。我相信我的for循环是错误的。

2 个答案:

答案 0 :(得分:2)

在当前尝试中,您尚未声明n变量,然后在不允许的for循环内重新声明了该变量。

您应该声明一个新的countDown(int)方法,然后使用whilefor循环。它可能看起来像:

public static void main(String[] args) {
  System.out.println(countDown(3));
}

private static String countDown(int n) {
  StringBuilder builder = new StringBuilder();
  while (n > 0) {
    builder.append(n);
    n--;
  }
  return builder.toString();
}

答案 1 :(得分:0)

您在for循环(n)中声明的变量与您在打印(i)中声明的变量不同,并且您将n分配给n被宣布。您需要执行此操作才能使其正常工作:

  • 将for循环中的变量值从n更改为i或打印出n而不是i

  • 更改变量的声明以不将其分配给自身

这是一种方法:

public class CountDown {
    public static void main(String[] args) {
        for(int i = 5; i > 0; i--;) {
            System.out.println("i=" + i);
        }
    }
}

这将是输出:

i=5
i=4
i=3
i=2
i=1