For loop强制以修饰符开头

时间:2014-09-25 09:08:02

标签: java for-loop

我最近遇到了for循环的问题。我的方法如下:

public static void countdown(int i) {
    System.out.println("Counting down from 10");
    for (i; i >= 1; i--){
        System.out.println(i);
    }

然而,这会返回语法错误,告诉我在for循环的初始化值中添加修饰符“++”。但是我不希望这样。无论如何要避免这样做吗?

4 个答案:

答案 0 :(得分:3)

初始化表达式执行一次,因为循环开始,但你没有对i做任何事情。因此,只需将其从循环中删除:

for (; i >= 1; i--){
    System.out.println(i);
}

答案 1 :(得分:2)

您需要指定i

的起始值
for (i; i >= 1; i--) {
  System.out.println(i);
}

您可以使用

for (i=10; i >= 1; i--) {
   System.out.println(i);
}

或者您可以删除i

 for (; i >= 1; i--) { // i is already initialized
   System.out.println(i);
}

您也可以引入新的本地变量

for (int k=i;k >= 1; k--) {
   System.out.println(k);
}

答案 2 :(得分:1)

我希望这个解决方案可以帮助您理解您的问题。

class Hello {

 public static void countdown(int j) {
    System.out.println("Counting down from 10");
       for (int i= j; i >= 1; i--){
        System.out.println(i);
    }
    }
    public static void main(String[] args) {
    countdown(5);
    }
    }

Output:

5
4
3
2
1

答案 3 :(得分:0)

for循环的语法如下:

for(INITIALIZATION; CONDITION; INCREMENT/DECREMENT)

由于你的i已经初始化,你的循环应该是这样的,因为你跳过循环中的初始化

for (; i >= 1; i--)

我宁愿按如下方式编写循环,因为它更容易阅读:

public static void countdown(int start) {
System.out.println("Counting down from " + start);
for (int i = start; i >= 1; i--){
    System.out.println(i);
}