从文件

时间:2017-04-13 05:04:27

标签: java for-loop random

我正在学习文件阅读和异常处理,我在网上找到了这个用于Hangman游戏程序的代码。有人可以在读取文件时分解程序开头的for循环吗?到目前为止,我只知道读取文件并在其上打印出来的while循环方法。但我不确定这个人是如何使用for循环从文件中的单词列表中读取的。

以下是代码:

import java.io.*;
import java.text.NumberFormat;
import java.util.*;

public class Hangman {

public static void main(String args[]) {

    try {
        Scanner scan = new Scanner(System.in);
        String fileName = "words.txt";
        Scanner fileScan = new Scanner(new File(fileName));
        ArrayList words = new ArrayList();
        String word;

        for(; fileScan.hasNext(); words.add(word)) //I am not sure what this code is doing
            word = fileScan.next();...

1 个答案:

答案 0 :(得分:0)

for循环有三个元素来详细说明它应该如何表现:

for (<initial action>; <condition for continuing>; <action per iteration>) {
    doSomething();
}

据我所知,这3个元素中没有一个是强制性的。像for(;;) { <body> }这样的for循环是非常有效的,只是运行一次或直到循环体中的代码达到中断条件。

在您列出的代码中:

  • <initial action>为空
  • <condition for continuing>是文件扫描中有更多单词
  • <action per iteration>是将当前单词添加到ArrayList

从Java 6(?)开始,还有可能编写更灵活的for循环,其中可迭代列表如下所示:

for (Item s : listOfItems) {
    doSomething(maybe with s);
}