Java 表达式

Java expressions

我试图在 Java 7 环境中理解这段代码,

int T = getIntVal();
while (T--> 0) {
 // do stuff here
}

T 在 while 循环中没有被修改。有人可以解释这段代码吗?

每次循环为 运行 时,--(递减)运算符将从 T 中减去(在循环条件为 运行 之后,因为它在 T 之后)。

最简单的方法就是尝试一下:

public class Tester {

   public static void main(String[] args) {
      System.out.println("-------STARTING TESTER-------");
      int T = 5;
      while (T-- > 0) {
         System.out.println(T);
      }
      System.out.println("-------ENDING TESTER-------");
   }

}

输出:

-------STARTING TESTER-------
4
3
2
1
0
-------ENDING TESTER-------

如果 -- 运算符在 T 之前,输出将如下所示(因为它在循环条件 运行 之前减去):

-------STARTING TESTER-------
4
3
2
1
-------ENDING TESTER-------

让您感到困惑的是 T--> 之间没有空格,所以您可能认为有一个 --> 运算符。
看起来像这样:

while (T-- > 0) {

}

这更有意义,在每个循环中你将 T 减少一个