6

これが可能だとは思っていませんでしたが、いくつかの矛盾するコメントを読んで、専門家に尋ねようと思いました.

ファイルを 1 行ずつ読み取る while ループを進めている場合、現在の反復がループの最後の反復になる場合、コードを実行する方法はありますか? このコードを while ループの直後に配置して、最後の行の後にコードを実行できることは理解していますが、反復でその位置を検出する方法があるかどうか疑問に思っていました。

ありがとう!

4

2 に答える 2

6

ファイルから読み取る特殊なケースでは、はい。

while(<>) {
    if(eof) {
        print "The last line of the file!\n";
    }
}
于 2013-10-15T20:20:13.420 に答える
4

現在の反復が最後であると判断できる特定の特殊なケースがあるかもしれませんが、一般的なケースでは不可能です。些細な例:

while (rand() < 0.99) {
  print "Hasn't ended yet\n";
}

次の乱数がどうなるかを予測することはできないため、与えられた反復が最終的な反復になるかどうかを知ることは明らかに不可能です。

于 2013-10-16T09:28:05.283 に答える