【发布时间】: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