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 减少一个
我试图在 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 减少一个