AssignmentOperator表达式在public static void main(String [] args)行中发生

时间:2014-08-22 03:10:42

标签: java eclipse

为什么eclipse会在public static void main(String[] args)行上为以下程序提供错误消息?

 import java.math.BigDecimal;
import java.util.*;

public class Main {
    static Scanner in=new Scanner(System.in);
    static BigDecimal a=new BigDecimal("0");
    static BigDecimal zero = new BigDecimal("0");
    public static void main(String[] args) {
        double n=nextN();
        double good=0;
        a=in.nextBigDecimal();
        boolean works=true;
        BigDecimal x;
        BigDecimal y;
        double ans;
        while(a.compareTo(zero)!=0||n!=0)
        {
            good=0;
            for(int i=0;i<n;i++)
            {
                x=in.nextBigDecimal();
                y=in.nextBigDecimal();
                works=(in1(x,y)&&in2(x,y)&&in3(x,y)&&in4(x,y));
                if(works)
                    good++;

            }
            ans=good/n*a.doubleValue()*a.doubleValue();
            System.out.printf("%.5f",ans);
            good=0;
            works=true;
            n=nextN();
            a=in.nextBigDecimal();
        }
    }



    public static int nextN()
    {
        String x=in.next();
        if(x.indexOf("^")<0)
            return Integer.parseInt(x);
        else
        {
            int base;
            int exp;
            base=Integer.parseInt(x.substring(0,x.indexOf("^")));
            exp=Integer.parseInt(x.substring(x.indexOf("^")+1));
            return (int) Math.pow(base,exp);
        }
    }
    public static boolean in1(BigDecimal x, BigDecimal y)
    {
        if(x.multiply(x).add(y.multiply(y)).compareTo(a.multiply(a))<=0)
            return true;
        return false;
    }
    public static boolean in2(BigDecimal x, BigDecimal y)
    {
        return ((x.subtract(a)).multiply((x.subtract(a))).add(y.multiply(y)).compareTo(a.multiply(a))<=0);
    }
    public static boolean in3(BigDecimal x, BigDecimal y)
    {
        return ((x.subtract(a)).multiply((x.subtract(a))).add(y.subtract(a)).multiply(y.subtract(a)).compareTo(a.multiply(a))<=0);
    }
    public static boolean in4(BigDecimal x, BigDecimal y)
    {
        return ((x).multiply(x).add(y.subtract(a)).multiply(y.subtract(a)).compareTo(a.multiply(a))<=0);
    }
}

它给我的错误是“线程中的异常”主“java.lang.Error:未解决的编译问题:     语法错误,插入“AssignmentOperator Expression”以完成表达式“

0 个答案:

没有答案