gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:01 24 4
gpt4 key购买 nike

我正在尝试减少此方法中的 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;
}

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

在剩下的两个循环中,您调用了两个不同的方法,您的第二个循环也取决于参数,所以我不确定它们是否可以合并为一个循环。


看起来 nextLine在方法外声明,我建议你使用 List<Sometype>并将元素添加到其中,来自 expandTabs(temp.nextLine()); , 每次你进入方法清除列表 list.clear() .


试试这段代码。使用适当的类型来声明 List<String> .您可以从 List 访问该元素使用 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();
}
}

关于java - 减少方法中的 for 循环次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33000427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com