public class Question21 {
public static void main(
String[] args) {
int i=3;
System.out.println(getBoolean()? i=2*i++:i+++ ++i);//line 4
}
//Heads or tail?
public static boolean getBoolean(){
if((int)(Math.random()*2)==0)
return false;
else
return true;
}
}
Prints randomly 6 or 8 at each execution.
No problem here, the code compiles fine. One thing to be aware of is that i+++ ++i compiles fine because of the way
Java code is actually parsed. The parser tokenizes the source in bunches of longest valid character sequences. i+++ ++i will be tokenized as i,++,+,++,i and interpreted as i++ + ++i, that is i post-incremented plus i pre-incremented.
my question is that if I use"i+++++i" or "i++ +++i" in line 4, there is compilation error, but if I use"i++ + ++i" or the above one ,there is no error, why?
The problem is that I still dont understand the above explanation. Could anyone give me a clearer explanation?