javascript - 无法使用错误处理检测字符串并且无法使“For”循环工作
问题描述
我被赋予了以下任务:
您需要让用户给您一个整数。使用错误处理来检查用户是否提交了一个整数,如果不是,则显示错误消息。然后,使用 for 循环为用户提供该整数的前 100 个乘数。
我已经尝试解决这个问题好几个小时了,但我似乎无法正确解决大部分问题。这是我的代码:
<!DOCTYPE html>
<html>
<head>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap" rel="stylesheet">
<title>Index_loop_1</title>
</head>
<body style = "background-color: #000000">
<h1 id="ha" style="color:#ffffff ;font-family: 'Roboto', sans-serif ;text-align: center; font-size:250%; padding: 250px 0">a</h1>
<script>
var a = document.getElementById("ha")
var m = "That is not a number!"
var f = window.prompt("Type a number here:")
try {
f = Integer.parseInt("100");
} catch(NumberFormatException) {
a.innerHTML = m
window.stop()
}
for (var q = f; q < 100; q *= q) {
a.innerHTML += q
}
</script>
</body>
</html>
任何帮助深表感谢。:D
解决方案
我不确定是否获得“前 100 个乘数”是我们在这里所做的(因为我们得到的是该数字 < 100 的平方),也许是“倍数”?
无论如何,不是为您解决这个问题的想法,而是代码问题:
- 我们应该在这里使用 MDN Docs而
parseInt()
不是。来自Java,而不是JavaScript。Integer.parseInt()
Integer.parseInt
NumberFormatException
也是一个Java特性。- 在里面
try
,我们将输入数字覆盖为 100。 - 我鼓励你使用人类可读的变量名。
相同脚本的示例,但JavaScript
方式和一些修复:
const error = "That is not a number!";
let factor = window.prompt("Type a number here:");
// Take integer part of factor, or NaN (not a number).
let factorInt = parseInt(factor);
if (isNaN(factorInt)) {
console.log(error, factor);
} else if (factorInt > 1) {
// If (factorInt <= 1) we get an infinite loop!
for (let total = factorInt; total < 100; total *= total) {
console.log(total);
}
}
推荐阅读
- javascript - jQuery DOMNodeInserted DOMNodeRemoved 不适用于每个元素
- c# - 在父项中设置绑定时,Xamarin.Forms 绑定到自定义控件不起作用
- java - 如何关闭java流序列中的类型提示
- apache-kafka - kafka 国营商店中的当前和最新状态是什么?
- excel - 如何在 VBA excel 中获取合并单元格的范围?
- python - 使用 Python 正则表达式从 .tex 文档中提取文本
- ionic4 - 尝试在android设备上运行时出现离子错误
- grafana - stable/prometheus-operator - 添加持久的 grafana 仪表板
- alfresco - Alfresco Aikau 服务加载错误,为什么没有正确找到或加载服务 javascript 文件?
- ios - 如何保护相同的继承层次结构,例如 MVVM