Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Casting

 
Anthea Blake
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
Can anyone please tell me why line 9 gives an error but line 10 doesn't. Isn't C1+=1 the same as C1=C1+1?
The explaination for the answer is:
"We can apply ++ operator on char values it will do increament on its ascii value i.e. it will make A to B.We can also apply += operator as it also do implicit casting.But the statement "c1=c1+1" is not valid as we required casting to store an int value into a variable of type char".
But I don't see why... it is that on line 9 the number 1 is converted to a character and on line 10 C1 is converted to an integer? If the number 1 on line 9 is an interger, is it possible to implicitly convert it to a character, so that it can be stored in C1 which is defined as a char?

1 class Char
2 {
3 public static void main(String arg[])
4 {
5 char c1,c2;
6 c1='A';
7 c1++;
8 c1+=1;
9 c1=c1+1;
10 c2='B';
11 c2--;
12 c2=c2-1;
13 }
14 }
Thanks,
 
Anthea Blake
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
Sorry... the line numbers are 8 and 9 not 9 and 10.
Thanks,
 
Thiru Thangavelu
Ranch Hand
Posts: 219
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
8 c1+=1;
9 c1=c1+1;
Because of Assignment implicit conversion. The += uses implicit coversion. c1+=1 is equivalant to c1 = (char) (c1+1) So no problem. But when you use + operator both the operands will be converted to int. so c1+1 gives an int result which can not be coverted into char. That is why the error is.
 
Anthea Blake
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your reply.
So does it mean that in the case.
C1 = (char)(C1+1), is (C1+1) evaluated to and integer and then cast down to a Character.? If this is the case, when is downcasting permitted and when is it not.?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic