I'm preparing Java OCA exam.

And here is a questions about casting.
I understand that for primitive data types, if we trying to assign an int to long, we should be fine. Since it can be done automatically.

And if we trying to assign a long to an int. It cause a compiler error, right?

So, **the first question:**
when the explicit casting is needed and I didn't do that in my code, The code won't compile. Is there any case that the code will compile??

And **the second question**:
The book I'm reading actually has a switch case structure like:
 int num = 10
 switch (num)
 case 10/3: //do something..

and the author says that, in this case, the decimal result will be chopped to 3.... 
But, there is no explicit casting over here, I think this should be a compile error...