如何在while循环中返回?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在while循环中返回?相关的知识,希望对你有一定的参考价值。

我想有一个方法返回while循环中的presentend值。我的代码表示读取txt文件,我逐行读取,我的目标是每次找到一行时返回,但是反复向我显示相同的数字。

public String getInputsTxtFromConsole() {
    String line = "";

    //read inputs file
    try {
        Scanner scanner = new Scanner(inputFile);

        //read the file line by line
        int lineNum = 0;
        while (scanner.hasNextLine()) {
            line = scanner.nextLine();
            lineNum++;

            //Return statement does not work here
        }
    } catch (FileNotFoundException e) {

    }

    return "";
}
答案

正如Nick A所说,返回的使用有两种用途:返回函数的值并退出函数。我需要你可以生成的所有值,例如,

  • 调用使用新值的方法: line = scanner.nextLine(); lineNum++; //Return statement does not work here ConsumerMethod(line); }
  • 存储在全局var中,如ArrayList,String [],...
  • 打印它System.out.println(行)。
  • ...

但是您无法返回值并期望该函数继续工作。

另一答案

正如我所提到的,将相同的扫描程序作为参数传递给读取行并返回该行的方法。您可能想要定义一旦没有剩余线路时它如何响应。

public String getInputsTxtFromConsole(Scanner scanner) {
    try {
        if (scanner.hasNextLine()) {
            return scanner.nextLine();
        }
    } catch (FileNotFoundException e) {

    }
    return null;
}

我还建议使用不同的类来读取文件。 BufferedReader将是一种更好的方法。

   BufferedReader in = new BufferedReader(new FileReader (file));
... // in your method
    return in.readLine(); //return null if the end of the stream has been reached

以上是关于如何在while循环中返回?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 while 循环中返回 2 个布尔值?爪哇

如何在Django视图中使用for循环返回每次迭代[关闭]

如何修复具有多个返回错误的条件的while循环

一个函数应该返回什么可以失败?

在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始

如何在 Python 中使用 while 循环计算列表中的字符串?