练习java中一个范围的总和



做什么

step = start < end ? 1 : -1

在这个函数中意味着什么?它来自于一本名为Eloquent Java的书的答案,我不知道函数值上下文中的问号和冒号意味着

function range(start, end, step = start < end ? 1 : -1) {
let array = [];
if (step > 0) {
for (let i = start; i <= end; i += step) array.push(i);
} else {
for (let i = start; i >= end; i += step) array.push(i);
}
return array;
}
function sum(array) {
let total = 0;
for (let value of array) {
total += value;
}
return total;
}
console.log(range(1, 10))
// → [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
console.log(range(5, 2, -1));
// → [5, 4, 3, 2]
console.log(sum(range(1, 10)));
// → 55

这被称为三元运算。

这是一个相当于if-else语句的单行语句。

step = start < end ? 1 : -1

和说是一样的吗

if(start < end)
step = 1;
else
step = -1;

格式看起来像这个

variable = (condition) ? true_value : false_value;

相关内容

最新更新