File tree Expand file tree Collapse file tree
1-js/02-first-steps/12-while-for/2-which-value-while Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- 该任务演示在比较中 postfix/prefix 形式如何导致不同的结果 。
1+ 这个题目展现了 i++/++i 两种形式在比较中导致的不同结果 。
22
331 . ** 从 1 到 4**
44
77 while (++ i < 5 ) alert ( i );
88 ```
99
10- 第一个值是 ` i= 1` ,因为 ` ++i` 首先递增 ` i` 然后返回新值。因此先比较 ` 1 < 5` 然后 ` alert` 显示 ` 1` 。
10+ 第一个值是 ` i = 1` ,因为 ` ++i` 首先递增 ` i` 然后返回新值。因此先比较 ` 1 < 5` 然后通过 ` alert` 显示 ` 1` 。
1111
12- 然后按照 ` 2,3,4…` —— 数值一个接着一个出现。比较总是使用递增值,因为 ` ++` 在变量前。
12+ 然后按照 ` 2, 3, 4…` —— 数值一个接着一个被显示出来。在比较中使用的都是递增后的值,因为 ` ++` 在变量前。
13+
14+ 最终,` i = 4` 时,在 ` ++i < 5` 的比较中,` i` 值递增至 ` 5` ,所以 ` while(5 < 5)` 不符合循环条件,循环停止。所以没有显示 ` 5` 。
1315
14- 最终,` i=4` 递增到 ` 5` ,当比较 ` while(5 < 5)` 失败时,循环停止。所以没有显示 ` 5` 。
15-
16162. ** 从 1 到 5 **
1717
1818 ` ` ` js run
1919 let i = 0;
2020 while (i++ < 5) alert( i );
2121 ` ` `
2222
23- 第一个值也是 ` i= 1` 。后缀形式 ` i++` 递增 ` i` 然后返回** 旧** 值,因此比较 ` i++ < 5` 将使用 ` i=0 ` (与 ` ++i < 5` 不同)。
23+ 第一个值也是 ` i = 1` 。后缀形式 ` i++` 递增 ` i` 然后返回 ** 旧** 值,因此比较 ` i++ < 5` 将使用 ` i = 0 ` (与 ` ++i < 5` 不同)。
2424
25- 但 ` alert` 调用是独立的。这是在递增和比较之后执行的另一条语句。因此它得到了当前的 ` i= 1` 。
25+ 但 ` alert` 调用是独立的。这是在递增和比较之后执行的另一条语句。因此它得到了当前的 ` i = 1` 。
2626
27- 接下来是 ` 2,3,4…`
27+ 接下来是 ` 2, 3,4…`
2828
29- 我们在 ` i= 4` 时暂停,前缀形式 ` ++i` 会递增并在比较中使用 ` 5` 。但我们这里还有后缀形式 ` i++` 。因此,它将 ` i` 递增到 ` 5` ,但返回旧值。因此实际比较的是 ` while(4 < 5)` —— true ,控制继续执行 ` alert` 。
29+ 我们在 ` i = 4` 时暂停,前缀形式 ` ++i` 会递增 ` i ` 并在比较中使用新值 ` 5` 。但我们这里是后缀形式 ` i++` 。因此,它将 ` i` 递增到 ` 5` ,但返回旧值。因此实际比较的是 ` while(4 < 5)` —— true ,程序继续执行 ` alert` 。
3030
31- ` i= 5` 是最后一个值,因为下一步 ` while(5 < 5)` 为 false 。
31+ ` i = 5` 是最后一个值,因为下一步比较 ` while(5 < 5)` 为 false 。
You can’t perform that action at this time.
0 commit comments