我需要在for循环中使用if语句替换一个值。确切的说明是:
将<script></script>
元素添加到
该页面首先使用<head>
选择介于1(包括)和110(包括)之间的随机整数
功能。然后,您的代码应将1到(但不包括)随机整数中的每个整数写入到
页上的数字29、71和105除外,这些数字应清楚说明(即“二十九”,“七十一”,
“一百五十五”)。您需要使用while循环或for循环进行迭代,并使用条件语句
打印特殊情况。
例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28二十九30 31 32 33 34 35
到目前为止,我有这个脚本
<script>
var display = Math.floor(1 + Math.random() * 110);
for(var i=1; i < display; i++)
document.writeln(i);
if (i >= 29)
{
//[29] = "twenty-nine"
document.write(i[29].replace(29, "twenty-nine"));
}
if (i >= 71)
{
document.write("seventy-one ");
}
if (i >= 105)
{
document.write("one-hundred-five ");
}
</script>
我无法弄清楚当数字不在指定数组中时如何替换它们。
最佳答案
您在循环中遇到问题,因为您没有在循环中使用块,而是仅在循环中执行for
之后的立即语句。
同样,您的if
条件不是正确的,因为它们与greater than or equals to
进行比较而不是检查是否相等。
但是您可以简化如下所示的逻辑
var display = Math.floor(1 + Math.random() * 110),
specials = {
29: 'twenty-nine',
71: 'seventy-one',
105: 'one-hundred-five'
};
for (var i = 1; i < display; i++)
document.writeln(specials[i] || i);
使您的代码正常工作
var display = Math.floor(1 + Math.random() * 110);
for (var i = 1; i < display; i++) {//for block
if (i == 29) {
document.writeln("twenty-nine");
} else if (i == 71) {
document.writeln("seventy-one ");
} else if (i == 105) {
document.writeln("one-hundred-five ");
} else {
document.writeln(i);
}
}