语法错误,插入“EnumBody”以完成BlockStatement

时间:2014-02-20 01:58:52

标签: java

public class SumLineTester {
/**
 * @param args
 */
public static void main(String[] args) {
       // TODO Auto-generated method stub
       SumLine test = new SumLine("5 8 3 2 1");
       System.out.println(test.getSum());
    }
}


import java.util.Scanner;

public class SumLine {
    private String line;

    public SumLine(String s) {
        line = s;
    }

    public int getSum(){
        int sum = 0;
        Scanner chop = new Scanner(line);

        while(chop.hasNextInt()){
            sum= sum + chop.nextInt();
        }
        return sum;

    public String getLine(){
        return s;
    }

    public String toString(){
        return line;
    }
 }
 }

导入的第一部分代码是我的测试人员类,其中包含我的main方法。剩下的就是我试图用掉测试仪的代码,我不断收到这个错误:

Syntax error, insert "EnumBody" to complete BlockStatement

at SumLine.getSum(SumLine.java:17)
at SumLineTester.main(SumLineTester.java:10)

如何修复错误?

3 个答案:

答案 0 :(得分:3)

您错过了getSum()

末尾的近距离大括号
public int getSum(){
    int sum = 0;
    Scanner chop = new Scanner(line);

    while(chop.hasNextInt()){
        sum= sum + chop.nextInt();
    }
    return sum;
^ \\no close brace

public String getLine(){
    return s;
}

这会抛出异常,因为您试图在getSum()方法中声明一个不允许的新方法。

只需像这样添加闭括号:

public int getSum(){
    int sum = 0;
    Scanner chop = new Scanner(line);

    while(chop.hasNextInt()){
        sum= sum + chop.nextInt();
    }
    return sum;
}
^ \\close brace added

public String getLine(){
    return s;
}

此外,正如David Wallace在评论中所指出的那样,不要忘记在课程结束时删除额外的花括号。

作为旁注,如果您使用像Eclipse这样的IDE,这些错误会更容易被发现。

答案 1 :(得分:2)

完全不确定为什么人们认为出于某种原因对某个问题进行投票是合适的,因为他们认为这个问题不在其中。这是一个非常有效的问题。即使是最有经验的程序员也会出现语法错误。碰巧我在这里遇到了类似的错误,&#34 ;;"终止导致相同消息的注释行。

语法错误,插入" EnumBody"完成BlockStatement 似乎是一个默认的错误消息是一个语法错误,使编译器严重混淆,无法告诉你想要做什么。一旦我理解了这一点,很容易发现我结束了一条线;我不应该有,如果/当我再次看到这个消息时,我会知道这意味着我做了一个新手语法错误,并且不会寻找错误类。这样的解释可以帮助这个用户,如果这样的答案在用户之下,请绕过这个问题。 Downvotes是针对错误的问题和答案,而不是关于你太好的错误的问题。

答案 2 :(得分:0)

import java.util.Scanner;

public static void main(String[] args) {
    Scanner scn = new Scanner(System. in)  //

    System.out.print("Enter first num:");
    int numOne = scn.nextlnt(); 
    System.out.print("Enter second num:");
    int numTwo = scn.nextlnt();
 
       System.out.println(" Sum : " + numOne + numTwo))
    System.out.println(" Difference : " + numOne - numTwo))
    System.out.println(" Product : " + numOne * numTwo))
    System.out.println(" Quotient : " + numOne / numTwo))
    System.out.println(" Remainder : " + numOne % numTwo))
 }
}