【问题标题】:Java expressions [duplicate]Java 表达式 [重复]
【发布时间】:2017-01-02 05:15:10
【问题描述】:

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

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

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

【问题讨论】:

  • Here's a related question 应该会给你答案(即使它是 c++,行为也是一样的)。
  • 你认为T-- 是做什么的?
  • 使用以大写字母开头的变量名是一种不好的做法。 java中没有这样的表达式-->。不要混淆 -- 和 > 。

标签: java while-loop expression java-7


【解决方案1】:

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

while (T-- > 0) {

}

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

【讨论】:

    【解决方案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-------
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 2012-07-09
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多