下面的代码试图打印出“是偶数”的数字,该怎么办?
它不应该是if(test)then(),而是if(!test)then()吗?当测试条件为“n%2”时,下面的代码似乎读取“如果数字不能被2整除,则打印出'number is even'”,这似乎不合逻辑。
更一般地说,在指定条件时编写Unless函数的优点是什么,当我们可以简单地编写if(!condition)时,使用If语句即可?
非常感谢任何帮助。
它不应该是if(test)then(),而是if(!test)then()吗?当测试条件为“n%2”时,下面的代码似乎读取“如果数字不能被2整除,则打印出'number is even'”,这似乎不合逻辑。
更一般地说,在指定条件时编写Unless函数的优点是什么,当我们可以简单地编写if(!condition)时,使用If语句即可?
非常感谢任何帮助。
function unless(test, then) {
if (!test) then();
}
function repeat(times, body) {
for (var i = 0; i < times; i++) body(i);
}
repeat(5, function(n) {
unless(n % 2, function() {
console.log(n, "is even");
});
// → 0 is even
// → 2 is even
// → 4 is even
%
不是用来测试可除性的,它是一个模运算操作符。这段代码测试n % 2
是否计算出可以被视为假(即0
),如果是,则表示n
是偶数。 - anon