Java表达式

7

我正在尝试理解Java 7环境中的这段代码,

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

在 while 循环中,T 没有被修改。能有人解释一下这段代码吗?


2
这里有一个相关的问题,可以给你答案(即使它是 C++,行为是相同的)。链接 - resueman
1
你认为 T-- 是什么意思? - bradimus
2
在编程中使用以块字母开头的变量名是一种不好的做法。在Java中没有这样的表达式-->。不要混淆--和>。 - PKR
2个回答

19

让您困惑的是在T-->之间没有空格,因此您可能会认为存在一个-->运算符。
实际情况如下:

while (T-- > 0) {

}

在每个循环中将T减1更有意义。


2

-- (递减) 运算符将在每次循环中从 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-------

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接