【问题标题】:While loop is broken, even though parameters are correct [closed]虽然循环被破坏,即使参数正确[关闭]
【发布时间】:2020-12-29 20:18:51
【问题描述】:

我对为什么我的代码没有运行感到非常困惑。我最终处于一个永远持续的循环中,我认为这是在 print 语句之后发生的 while 循环。列出的 print 语句打印为 true,因此 while 循环应该至少经过一次迭代……对吗?

这不会发生,我的代码最终会永远运行,并且不会打印任何其他内容。

(也只是忽略带有% 的if 语句,我在做大之前先进行小规模测试。)

Scanner scan = new Scanner(file);
FileWriter fw = new FileWriter(modifiedCSV);
int counter = 0;

System.out.println(scan.hasNextLine() && counter < 10);
while(scan.hasNextLine() && counter < 10);
{
    System.out.println("test");
    if(counter%1000000==0)
    {
        System.out.println("Normalizing Line: " + counter);
    }
    String line = scan.nextLine();
    String[] lineData = line.split(",");
    System.out.println("!!!!!!");
    double normalizedDistance = (Double.parseDouble(lineData[3])-minDistance)/(maxDistance-minDistance);
    double normalizedAngle = (Double.parseDouble(lineData[7])-minAngle)/(maxAngle-minAngle);
    double normalizedFlux = (Double.parseDouble(lineData[8])-minFlux)/(maxFlux-minFlux);
    
    fw.write(line + "," + normalizedDistance + "," + normalizedAngle + "," + normalizedFlux + "\n");
    counter++;
}

【问题讨论】:

  • 循环声明后有一个分号。

标签: java loops while-loop


【解决方案1】:

你的 while 循环是空的,因为在 while 语句的行尾有一个分号。

while(scan.hasNextLine() && counter < 10);

【讨论】:

  • 我讨厌自己……我已经盯着这个看了好几个小时了。非常感谢!
  • 哈哈知道那种感觉 :) 没问题,祝你好运!
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 2021-06-16
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 2017-11-16
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多