我正在学习文件阅读和异常处理,我在网上找到了这个用于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();...
答案 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);
}