gpt4 book ai didi

java - 如何在不知道哪个端点更大的情况下创建一个通用的 for 循环?

转载 作者:行者123 更新时间:2023-12-04 10:56:32 24 4
gpt4 key购买 nike

我的项目中有以下代码,我想知道是否可以通过将其替换为单个 for 以更少的代码行编写相同的代码。循环增加或减少取决于 endPosition大于或小于 startPosition .那可能吗?

if (endPosition > startPosition) {
for (int i = startPosition; i <= endPosition; i++) {
doStuff(i);
}
} else {
for (int i = startPosition; i >= endPosition; i--) {
doStuff(i);
}
}

编辑 1 :我已将“优化”一词更改为“用更少的代码行编写”。另外,我添加了索引 i 作为 doStuff 的参数,以强调它很重要。然而,访问每个元素的顺序不是。

最佳答案

int step = endPosition > startPosition ? 1 : -1;
for (int i = startPosition ; (i-step) != endPosition; i += step) {
doStuff(i);
}

请注意,这将始终执行 doStuff至少一次(即 startPositionendPosition 被认为包含在内)。

关于java - 如何在不知道哪个端点更大的情况下创建一个通用的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59140952/

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