我最近遇到了for循环的问题。我的方法如下:
public static void countdown(int i) {
System.out.println("Counting down from 10");
for (i; i >= 1; i--){
System.out.println(i);
}
然而,这会返回语法错误,告诉我在for循环的初始化值中添加修饰符“++”。但是我不希望这样。无论如何要避免这样做吗?
答案 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);
}