为了账号安全,请及时绑定邮箱和手机立即绑定

请问?为什么for语句括号后面有;和无;结果不同?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>if...else</title>

<script type="text/JavaScript">

var money,sum=0;

for(money=1;money<=10;money++);

{

    sum=sum+money;

    }

document.write("一共多少钱:"+sum);    

</script>

</head>

<body>

</body>

</html>


正在回答

5 回答

分号代表了语句的结束.如果在for语句后加分号,就意味着for语句到分号那就结束了,不会执行for语句中的循环体。不加分号,那就执行for语句的循环体。所以结果不一样。

4 回复 有任何疑惑可以回复我~
#1

格小调MR3168311 提问者

不执行循环体那为什么是11?
2016-07-27 回复 有任何疑惑可以回复我~
#2

l_yanlei 回复 格小调MR3168311 提问者

说的有点问题。现在的情况是这样的,for语句后面有分号,那么for语句就没有循环体了,于是它就一直执行for语句,直到判断条件达成,退出for语句,然后往下执行。 所以,for先执行10次,money就等于11了 然后往下执行,sum=sum+money; 因为sum初始为0,之后也没变动,所以sum还是0,而money经过for语句,变为11,所以最终sum=0+11=11
2016-07-27 回复 有任何疑惑可以回复我~
#3

格小调MR3168311 提问者 回复 l_yanlei

money不是<=10嘛,所以“for先执行10次,money就等于11了”为什么?
2016-07-27 回复 有任何疑惑可以回复我~
#4

l_yanlei 回复 格小调MR3168311 提问者

money初始是1,然后一直money++,直到money=10,这个时候,判断条件是money<=10,符合判断条件,执行money++,所以money=11,再判断,money<=10,不符合,for循环结束。最终money=11
2016-07-27 回复 有任何疑惑可以回复我~
#5

格小调MR3168311 提问者 回复 l_yanlei

哎呀 豁然开朗啊 谢谢你了啊
2016-07-27 回复 有任何疑惑可以回复我~
#6

l_yanlei 回复 格小调MR3168311 提问者

哈哈,继续加油~
2016-07-27 回复 有任何疑惑可以回复我~
查看3条回复

了解了  谢谢你们了

0 回复 有任何疑惑可以回复我~

for();是执行的,会把money累加到11,之后再执行{}的内容,sum=11

0 回复 有任何疑惑可以回复我~

没有的话就没有循环条件,不构成循环结构,怎么实现累加

0 回复 有任何疑惑可以回复我~

不执行循环体那为什么是11?


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问?为什么for语句括号后面有;和无;结果不同?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信