当从文件中读取负数时结束程序

时间:2014-08-03 02:03:01

标签: java file

我正在开发一个程序,它应该从文件读取数字(double)并对它们执行一些计算(创建八边形对象)。但是,我们应该在读入负数时结束程序,我不知道该怎么做?

正在使用的文件如下所示:

5.0
7.5
3.26
0.0
-1.0

我正在使用while循环读取文件并将值分配给变量,所以如果数字是负数,我只需要在while循环中添加一些内容吗?类似的东西:

while(fin.hasNext()) {
    double side = fin.nextDouble();
        if(side < 0) 
            //do whatever I need to do to end the program
 }

或者我在思考中完全错了吗?

提前感谢任何输入。

2 个答案:

答案 0 :(得分:2)

这不起作用,因为fin.hasNext()只返回下一行是否是EOF(也就是没有更多文本),而不是内容本身。您需要在循环内检查负值。这是通过调用nextDouble()并将其与0进行比较,然后在不是正数时进行中断来完成的。所有这一切都假设您使用的是Java的Scanner类。

代码如下:

while (fin.hasNextDouble()) {
    double num = fin.nextDouble();

    if (num < 0.0) break;

    // do your stuff

答案 1 :(得分:2)

这就像做

一样简单
while(fin.nextDouble()) {

    double d = fin.nextDouble();

    if (d < 0) {

        break;
    }

    ...
}

另一种方法是做

double d;

while(fin.hasNextDouble() && (d = fin.nextDouble()) >= 0) {

    ...
}