Java:标记 "n" 上的语法错误,++ 应在此标记之后

Java: Syntax error on token "n", ++ expected after this token

当 运行 这段代码时,我在 Eclipse 中遇到了这个错误:

package prova1;
import java.util.Scanner;
public class Fattoriale {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int n;
    System.out.print("Inserisci il numero:\n");
    n = input.nextInt();
    int val = 1;

    for ( n; n>1; n-=1){
        val = val*n;

    }   

System.out.println(val);
}

}

我正在尝试获取 n 数的阶乘,但出现此错误,我无法弄清楚问题出在哪里:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Syntax error on token "n", ++ expected after this token

at prova1.Fattoriale.main(Fattoriale.java:12)

我尝试创建一个新的 var i,但我仍然收到该错误

在 Java 中,您不能在 for 循环的第一个隔间中单独使用 n。但是,您可以将其留空:

for ( ; n>1 ; n-=1) {
//   ^
// Nothing
}

考虑用更传统的 -- 替换 -= 1

如果你想变得很花哨,你可以这样做:

for ( int i = input.nextInt() ; n>1 ; n-- ) {
    // ...
}

注意:使用上面的for循环就可以了。不过,一般来说,当您将三个隔间之一留空时,应该考虑使用 while 循环代替 for