I am trying to understand this code in Java 7 environment,
int T = getIntVal();
while (T--> 0) {
// do stuff here
}
T is not modified within the while loop. Can someone explain this code?
Duplicate code as the name suggests is a repetition of a line or a block of code in the same file or sometimes in the same local environment.
A set of parenthesis are duplicate if the same subexpression is surrounded by multiple parenthesis. Examples: Below expressions have duplicate parenthesis - ((a+b)+((c+d))) The subexpression "c+d" is surrounded by two pairs of brackets. (((a+(b)))+(c+d)) The subexpression "a+(b)" is surrounded by two pairs of brackets.
what confuses you is that there is no whitespace between the T--
and the >
, so you might think there's a -->
operator.
looking like this:
while (T-- > 0) {
}
It makes more sense, in every loop you decrease T by one
The -- (decrement) operator will subtract from T each time the loop is run (after the loop condition is run since it as after T).
The simplest way is to just try it out:
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-------");
}
}
Output:
-------STARTING TESTER-------
4
3
2
1
0
-------ENDING TESTER-------
If the -- operator was before T, the output would look like this (since it subtracts before the loop condition is run):
-------STARTING TESTER-------
4
3
2
1
-------ENDING TESTER-------
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With