java-减少方法中的for循环次数

我正在尝试减少此方法中for循环的数量,但是我不确定如何做到这一点,同时仍保持逻辑不变,并且不移至另一个方法.我想这样做是为了减少McCabe Cycolmatic Complexity,每个循环将其增加1.所以我想将方法​​减少1.

  private void method(int page)
    {
        for (int i = 0; i < LINES_PER_PAGE; i++)
        {
            nextLine[i] = null;
        }
        try
        {
            Scanner temp = new Scanner(fileToPrint);
            for (int i = 0; i < page - 1; i++)
            {
                skipAPage(temp);
            }
            for (int i = 0; (i < LINES_PER_PAGE) && (temp.hasNext()); i++)
            {
                nextLine[i] = expandTabs(temp.nextLine());
            }
        } catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
    }

解决方法:

    for (int i = 0; i < LINES_PER_PAGE; i++) {
        nextLine[i] = null;
    }

这完全没有必要,因为Java中任何对象的默认值都为null.

在两个循环的其余部分中,您将调用两个不同的方法,而第二个循环也取决于参数,因此,我不确定它们是否可以合并为一个循环.

似乎nextLine是在方法之外声明的,我建议您使用List< Sometype>.并在每次输入方法时将来自expandTabs(temp.nextLine());的元素添加到其中,清除列表list.clear().

试试这个代码.使用适当的类型来声明List< String>.您可以使用myList.get(index)方法从列表访问元素.

List<String> myList = new ArrayList<>();

private void method(int page) {
  try {
    myList.clear();            // Clear the list.
    Scanner temp = new Scanner(fileToPrint);
    for (int i = 0; i < page - 1; i++) {
      skipAPage(temp);
    }
    for (int i = 0; (i < LINES_PER_PAGE) && (temp.hasNext()); i++) {
      myList.add(expandTabs(temp.nextLine()));    // Add the elements to the list.
    }
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  }
}
上一篇:c#-Winforms的翻转/滑动效果


下一篇:PHP:数组$_POST循环问题