Java:标记“上的语法错误”;n‘++;此令牌之后应为

Java:标记“上的语法错误”;n‘++;此令牌之后应为,java,compiler-errors,Java,Compiler Errors,我在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

我在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-- ) {
    // ...
}

注意:上面的
循环可以使用
。一般来说,当你把三个分区中的一个留下空白时,应该考虑使用<代码>而<代码>循环代替<代码> >空白。

谢谢!解决了这个问题!