【发布时间】:2021-08-28 06:37:43
【问题描述】:
我在尝试创建一个根据材料的半衰期计算材料剩余量的函数时遇到问题。
function halfLife(quantity, halfLifeTime, timeElapsed) {
let decay = (timeElapsed / halfLifeTime);
let remainingQuantity;
if (decay >= 1 && decay % 1 === 0) {
for (let i = 0; i < decay; i++) {
remainingQuantity = quantity / 2;
}
return remainingQuantity;
} else if (decay < 1) {
let partialDecay = .5 / halfLifeTime;
return remainingQuantity = quantity - partialDecay;
}
}
let actual = halfLife(1, 4, 1);
let expected = .875;
if (actual === expected) {
console.log("Test PASSED!");
} else {
console.error("Test FAILED.");
console.group("Result:");
console.log(" actual:", actual);
console.log("expected:", expected);
console.groupEnd();
}
actual = halfLife(2, 2, 4);
expected = 1 / 2;
if (actual === expected) {
console.log("Test PASSED!");
} else {
console.error("Test FAILED. Keep trying!");
console.group("Result:");
console.log(" actual:", actual);
console.log("expected:", expected);
console.groupEnd();
}
如果一个输入必须被多次分割,第一个'if'语句只会将一个输入分割一次并返回它。我做的第一个测试工作正常,但第二个是问题。有不清楚的地方见谅,我还在学习中!
【问题讨论】:
标签: javascript function for-loop