为什么我的for循环在某些情况下没有启动?
Why won't my for-loop start in some cases?
我在javascript中编写了一些简单的代码,让您输入间隔的开始和结束值并指定分母。输入后,程序将通过间隔并检查有多少数字可被指定的分母整除。
一开始似乎工作得很好,但在某些情况下,程序根本不会运行循环,我很难弄清楚为什么。
我代码://declarations
var startValue = prompt ("pick a starting value:");
var endValue = prompt ("pick an ending value:");
var divide = prompt ("pick a denominator");
var count = 0;
//control divisibility
for (startValue; startValue <= endValue; startValue++) {
var quotient = startValue/divide;
if (quotient % 1 == 0) {
count++;
}
}
//result
alert("There are " + count + " numbers divisible by " + divide + " in the interval");
下面是一些对
程序有效/不有效的输入值(显示为"startNr, endNr,divide"):
工作:
3,92,8
1、100、1
17、200,12
24, 379, 22
18、90、18
不工作:5、25、5
7、21、7
2、108,8
谢谢。
这里的问题是prompt
返回输入作为字符串,并且您不将其转换为数字。
当您比较字符串时,应用字典顺序,并且基于这种顺序,例如,"25"
在"5"
之前
console.log("25" < "5");
所以你应该用
替换你的声明:var startValue = Number(prompt ("pick a starting value:"));
var endValue = Number(prompt ("pick an ending value:"));
var divide = Number(prompt ("pick a denominator"));
作为旁注,由于您除以divide
,您也应该检查它不为零!
或者,更好的是,不执行实际的除法,然后对商进行检查,只是按照@hindmost建议的那样做:
for (startValue; startValue <= endValue; startValue++) {
if (startValue % divide == 0) {
count++;
}
}
相关文章:
- jQuery悬停在没有鼠标悬停的情况下启动
- Apache Cordova:在不启动浏览器应用程序的情况下运行Cordova运行浏览器
- 默认情况下在代码镜像中启动全屏
- Ajax-函数在没有调用或单击的情况下启动
- 是否可以在所有值都为0的情况下启动D3JS饼图
- 返回按钮回调函数在特定情况下失败或未启动
- 只有在前一个功能成功完成的情况下,我才能正确地启动此功能
- 如何在没有用户确认的情况下在iPhone的浏览器中启动音频
- 在不重新加载文件的情况下重新启动 gif 动画
- XMLHttpRequest 在不启动 onreadystatechange 函数的情况下启动多次
- 如何在不重新启动 Web 应用程序的情况下以编程方式使 JavaScript 和 CSS 包失效或刷新
- 如何在没有window.open的情况下从Javascript启动PHP文件
- 在不更改 html 内容的情况下“启动”iframe
- 我的代码在没有警报()的情况下无法正常工作;启动函数
- 即使在自动播放=“假”预加载=“无”之后,视频也会在不单击播放按钮的情况下启动
- 在不执行浏览器操作的情况下启动chrome扩展
- HTML和JSP—如何在不移动到另一个页面的情况下启动表单上的操作
- 传单.绘制映射:如何在没有工具栏的情况下启动绘制功能
- 在没有.click()的情况下启动leanModal
- 在不重新启动的情况下启动firefox扩展