这些"for"循环有什么作用?

use*_*955 0 java foreach for-loop

我只熟悉正常的for循环声明.谁能告诉我这些for循环正在做什么以及它们的条件如何工作?

BufferedReader charSource = Files.newBufferedReader(this.sourcePath, Charset.forName("ISO-8859-2");

BufferedWriter charSink = Files.newBufferedWriter(this.targetPath, Charset.forName("ISO-8859-2");

                for (String line = charSource.readLine(); line != null; line = charSource.readLine()) {
                for (final String element : line.split("\\s")) {
                    if (!element.isEmpty()) {
                        this.streamSorter.write(element);
                        elementCount += 1;
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

zw3*_*324 5

这里没有什么不正常的.

  1. 声明一个String变量line,初始化为charSource.readLine();
  2. 测试是否line != null,如果false,结束循环;
  3. 跑身;
  4. line = charSource.readLine(),转到2.

第二个是针对循环增强的,它可以循环遍历任何实例Iterable,并将使用Iterator给定的Iterable.