Discuss / JavaScript / 循环小问题。。。

循环小问题。。。

Topic source

terry_404

#1 Created at ... [Delete] [Delete and Lock User]

var x = 0; for (;;) { // 将无限循环下去 if (x > 100) { break; // 通过if判断来退出循环 } x ++; } 100

var x = 0; for (;;) { // 将无限循环下去 if (x > 100) { break; // 通过if判断来退出循环 } x ++; x;//<------这个是我添加的 } 101

为什么下面那个结果x会+1?在循环里面他没有做运行啊

terry_404

#2 Created at ... [Delete] [Delete and Lock User]

改革错别字在循环里没有做运算

王闪_Frank

#3 Created at ... [Delete] [Delete and Lock User]

没明白你的意思。 x++ 不是 加1了吗?

你两段程序执行结束后,x都是101

输出的100和101分别是程序最后的一条语句:x++和x的返回值

第一段程序中,x++的返回值是执行加1运算前的值,所以是100 第二段程序中,x的返回值当然是101了

P.S. 如果你学过C语言等,就应该明白x++和++x的区别。如果第一段程序的最后一条语句为++x,那么结果也是101。

两段代码的结果x=101,这是事实;

我觉得你在这道问题里有两处误解: 1.虽然第一段代码的结果是100,但是x不是100,因为100不大于100,所以break不执行,break执行的时候,x已经是101了。 2.你可以试着理解以下2段小代码,如果理解了,就知道怎么回事了;

a、var x = 100; x++; b、var x = 100; x++; x;

你的两段代码都是在x=100的情况下输出的,不是101的情况下输出的,原因你也知道,是因为101的时候已经break了,所以下面代码不执行。所以你只要理解 2 里面的两个小代码就明白了


  • 1

Reply