我正在开发一个程序,它应该从文件读取数字(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
}
或者我在思考中完全错了吗?
提前感谢任何输入。
答案 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) {
...
}