var obj = prompt("输入一个整数:","")
if(/^\+?\d+$/.test(obj)){
var sum = 0
for(var i = 1 i <= obj i++){
var x = 1
for(var j = 1 j <= i j++){
x *= j
}
sum += x
}
alert("1的阶乘到"+obj+"的阶乘的和: " + sum)
break
}else{
continue
}
}
假设用户是输入到一个文本框吧,文本框在myform表单中,name为text.还有一个按钮,用户点击它的时候会出来结果,用一个消息框显示:
<script language="javascript">
function myresult(){//定义一个函数
var result=0//用来保存求得的和,
if(isNaN(document.myform.text.value)){ //isNaN()用来判断用户的输入是否是一个整数
alert("您输入的不是一个整数,请重新输入")
document.myform.text.focus()//定位光标到文本框
document.myform.text.select()//使框中内容被选中
}else{
//利用parseInt()方法将文本框中的内容转换为一个数字,如果输入的是“23a2”,那这个方法的结果就是“23”
var num=parseInt(document.myform.text.value)
result=num*(num+1)/2 //利用数列的求和公式
}
alert("所得的结果是: "+result)//用消息框显示结果
}
}
</script>
这个是JS程序,我做了异常处理,也就是说用户如果输入的不是整数要提醒用户,下面我弄的全部代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />
<title>求和</title>
<script language="javascript">
function myresult(){//定义一个函数
var result=0//用来保存求得的和,
if(isNaN(document.myform.text.value)){ //isNaN()用来判断用户的输入是否是一个整数
alert("您输入的不是一个整数,请重新输入")
document.myform.text.focus()//定位光标到文本框
document.myform.text.select()//使框中内容被选中
}else{
//利用parseInt()方法将文本框中的内容转换为一个数字,如果输入的是“23a2”,那这个方法的结果就是“23”
var num=parseInt(document.myform.text.value)
result=num*(num+1)/2 //利用数列的求和公式
}
alert("所得的结果是: "+result)//用消息框显示结果
}
}
</script>
</head>
<body>
<form name="myform" method="post" action="#">
<p>请在这里输入一个整数:
<input name="text" type="text" id="text" height=20px width=130px>
</p>
<p>
<input name="btnadd" type="button" value="确定" onClick="myresult()">
</p>
</form>
</body>
</html>
有不明白的地方接着问。
听了那个人的我又试了试我原来用的循环,输入一个八位的还行,十几位就不行了,改了之后输入一个二十位的也没事了,就是结果大点