Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java While循环中的后减量操作_Java - Fatal编程技术网

Java While循环中的后减量操作

Java While循环中的后减量操作,java,Java,结果是 使用后缀减量运算符,循环迭代次数=5,b=-1 我不明白为什么b的值是-1。b的值从5开始(在while循环之后它的值是4),然后在1结束(在while循环之后它是0),然后从5到1的迭代是5。如果我认为是正确的,为什么在循环之后b的值是-1。谢谢。这是因为当b==0时,后缀将返回false,而while循环将终止。但是,postifx仍将从b中减去一。因此,循环执行5次,iterations=5。但是,b递减6倍。 **后缀增量或减量实际上是在使用值**之后发生的,b的初始值是5,因此

结果是

使用后缀减量运算符,循环迭代次数=5,b=-1


我不明白为什么b的值是-1。b的值从5开始(在while循环之后它的值是4),然后在1结束(在while循环之后它是0),然后从5到1的迭代是5。如果我认为是正确的,为什么在循环之后b的值是-1。谢谢。

这是因为当
b==0
时,后缀将返回
false
,而while循环将终止。但是,postifx仍将从
b
中减去一。因此,循环执行5次,
iterations=5
。但是,
b
递减6倍。


**后缀增量或减量实际上是在使用值**之后发生的,
b的初始值是5,因此在第一次迭代中,在最后一次迭代后检查5的条件,b在其值(比较时为1)减量后变为0,然后检查0,但条件为false,但由于后缀递减,其值变为-1。 后缀->首先使用值,然后使用减量或增量这就是它的工作原理

这段代码

b = 5;
    loopiterations = 0;
    while (b-- > 0) {  // Use a postfix decrement
        loopiterations++;         
    }
    System.out.println("Postfix decrement operator used, loopiterations = " +
            loopiterations + ", b = " + b);
在语义上与

   while (b-- > 0) {
      // do something
   }

循环
while(b-->0)
b==0
时立即退出,但由于后减量操作
b
将是最后一次减量,因此
b
在打印时的值将为
-1

5检查是否存在条件<0可能是输入错误?您解释代码的内部工作。这真的很有帮助。谢谢你,先生
while (b > 0) {
  b--;
  // do something
}
b--;