<分区>
假设我有以下输出整数的基本循环:
for (var i = 0; i < 6; i++) {
echo i;
}
/* Output: 0 1 2 3 4 5 */
是否可以使用一个简单的变量 flag
将其输出“翻转”为 5 4 3 2 1 0
,其值只能是 1
或 -1
,而不使用 if/else
?
主要是在 JavaScript 中寻找答案,但这应该是一个与语言无关的问题。
<分区>
假设我有以下输出整数的基本循环:
for (var i = 0; i < 6; i++) {
echo i;
}
/* Output: 0 1 2 3 4 5 */
是否可以使用一个简单的变量 flag
将其输出“翻转”为 5 4 3 2 1 0
,其值只能是 1
或 -1
,而不使用 if/else
?
主要是在 JavaScript 中寻找答案,但这应该是一个与语言无关的问题。
最佳答案
您可以将起点计算为 5 * (1 - flag)/2
。您可以使用与终点条件类似的方式计算一个值,但始终循环相同的值并从循环变量计算实际值会更容易:
start = 5 * (1 - flag) / 2;
for (var i = 0; i < 6; i++) {
echo start + i * flag;
}
关于algorithm - "Flip"仅使用 +1/-1 而不使用 if/else 的简单循环的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023168/