使用+ 1/-1而不使用if/else"翻转"简单循环的输出

gsk*_*lee 1 language-agnostic algorithm loops

假设我有以下输出整数的基本循环:

for (var i = 0; i < 6; i++) {
    echo i;
}

/* Output: 0 1 2 3 4 5 */
Run Code Online (Sandbox Code Playgroud)

是否有可能将其输出"翻转"为5 4 3 2 1 0使用一个简单的变量flag,其值只能是1-1不使用if/else

主要是在JavaScript中寻找答案,但这应该是一个与语言无关的问题.

Guf*_*ffa 7

您可以将起点计算为5 * (1 - flag) / 2.您可以以类似的方式计算值以在结束点的条件中使用,但是更容易始终循环相同,并从循环变量计算实际值:

start = 5 * (1 - flag) / 2;
for (var i = 0; i < 6; i++) {
  echo start + i * flag;
}
Run Code Online (Sandbox Code Playgroud)