【发布时间】:2017-04-13 05:04:26
【问题描述】:
我正在学习文件读取和异常处理,我在网上找到了这个 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();...
【问题讨论】:
-
欢迎来到 Stack Overflow!请take the tour 了解该网站的运作方式以及此处的主题问题。另见:Why is "Can someone help me?" not an actual question?
-
该行执行以下操作:1) 检查文件中是否有另一个单词
fileScan.hasNext()2) 将文件中的下一个单词保存到String变量 @987654326 @ 在word = fileScan.next()3) 然后它使用words.add(word)将该字符串附加到ArrayListwords。这是破解for循环的一种奇怪方法,并且作为while循环会更清晰。 -
有趣!谢谢,我原以为这会比 if 语句更好,但是使用 while 循环,您不必将
word初始化为某些东西吗?假设你的意思是while(fileScan.hasNext()) { words.add(word); word = fileScan.next(); } -
@AustinKootz 我测试了上面的while循环,我必须初始化字符串字。
-
@janny 在 for 循环中,
increment即for( nope; nada; HERE)最后执行,在循环体中的代码运行之后。这就是为什么我说这是一个奇怪的 hack。