为什么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”以完成表达式“