【问题标题】:Java: Syntax error on token "n", ++ expected after this tokenJava:标记“n”上的语法错误,此标记后应为 ++
【发布时间】:2015-01-24 20:39:16
【问题描述】:

运行此代码时在 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 compiler-errors


    【解决方案1】:

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

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

    考虑将-= 1 替换为更传统的--

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

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

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

    【讨论】:

    • 非常感谢!解决了问题!
    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    相关资源
    最近更新 更多