正确的方法“获得下一个价值”

时间:2010-05-06 16:40:20

标签: java

此代码无效。你能帮我解决一下吗?

// need to get next parameter
static double getParametr()
{
    Scanner scanner = new Scanner(System.in);
    param = scanner.nextDouble();
    return param;
}
// ...
// ...
if (i==1)
{
    System.out.println("vvedite storoni pryamougolnika:  ");
    Shape parA = new Rectangle();
    parA.a = Shape.getParametr(); --- this is ok
    double aa = parA.a;
    Shape parB = new Rectangle();
    parB.b = Shape.getParametr();  ------ this is no work!!! 
    double bb = parB.b;
    Rectangle rec = new Rectangle(aa, bb);
    arrayFigur[i] = rec.area();
}

2 个答案:

答案 0 :(得分:1)

我猜猜parB.b是不存在的,或者它甚至不是双重的。您确实需要向我们提供更多信息。

注意:每次调用getParametr()时创建一个新的Scanner对象都是低效的。

答案 1 :(得分:0)

我想问题是您为要解析的每个参数创建了一个新的扫描仪。也许第一个扫描仪从输入中读取的字符数多于第一个参数所需的字符数。然后为下一个参数创建一个新的Scanner,但是在第一个参数结束后,流不会完全定位。

您应该只创建一个扫描程序并使用此实例进行所有解析。