i-在while循环中是否特别?

时间:2019-04-17 14:08:05

标签: java

我正在一个while循环中,它的i减少了,但是我期望10次使用两次。我认为,我们在开头使用10,然后在while循环开始时使用。因为System.out.println(i),所以我们写10;然后我们看到我- ..所以我认为我们可以再使用10个,然后将其减少到9个。您能解释为什么输出返回如下吗?

int i=10;

 while(i>1){

  System.out.println(i);

  i--;

 }

预期输出为 10 10 9 8 7 6 5 4 3 2

但是它给 10 9 8 7 6 5 4 3 2

2 个答案:

答案 0 :(得分:5)

您的错误观念:这些修复前/修复后操作仅影响“当前”表达。例如,它们具有某些封闭循环上下文的概念。您假设--i以某种方式神奇地影响了while条件。没有。请参阅here,以了解更多信息。

您的代码为:

  1. i = 10
  2. 我> 10 ...确定:进入循环
  3. 打印我
  4. i = i -1
  5. 转到2

换句话说:如果要查看打印输出中的差异,请更改代码以执行以下操作:

System.out.println(--i);
System.out.println(i--);

例如。

在您的代码中,您可以单独执行该操作。因此,该行可以写为i----ii = i -1i -= 1。没关系该表达式将i减1,并存储新值。同样:要查看不同的结果,您需要直接使用该操作的结果!

答案 1 :(得分:0)

您所说的不正确,当您进入while循环时,它已经是第一次迭代,因此第一个打印的值为10。然后减小该值,使第二个值为9。