java - for 循环上的不同增量取决于 boolean 值

标签 java for-loop increment termination decrement

我如何根据 boolean 值选择for循环上的增量,我正在尝试做这样的事情:

    for (int y = iniY; isdown? (y >= endY): (y <= iniY+dy) ; isdown? --y:y++);

for 循环接受终止但不接受增量...

我目前的工作代码是这样的:

    if(isdown)
        for (int y = iniY; y >= endY; --y) {
            code lines...
        }
    else
        for (int y = iniY; y <= iniY+dy; ++y) {
            code lines...
        }

代码无法提取到新方法,因为它适用于许多变量...

最佳答案

与 minitech 的解决方案类似,但循环内没有分支。

int end = isdown ? iniY - endY : dy;
int direction = isdown ? -1 : +1;

for(int i = 0; i <= end; i++) {
    int y = iniY + direction * i;
    …
}

关于java - for 循环上的不同增量取决于 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068150/

相关文章:

c++ - 取消 parallel_for 的最有效方法是什么

javascript - Canvas 问题

c - 在此代码中,静态变量不会使用递归递增

java - 如何创建包含字符串内容的 txt 文件并下载该 txt 文件

java - 将 int[] 传递给方法

java - Android 地理围栏(定位服务)——如何触发应用内事件

c++ - 索引增量如何在 C++ 中工作

Java数据结构让一个方法只有在被调用N次后才会触发

java - 如何使用 java 将 for 循环中的所有 JSON 对象写入文本文件

java - 请解释 "x = x++;"中的++ 运算符发生了什么。增量在哪里完成?