Parce que, quand t écris ça :
System.out.println(a+b+c+"="+(a+c));
avec a et c qui sont des entiers (int) et b un char, ben Java additionne le tout (un char et un int, au final, hein, ben c la même chose!)
donc, tu a brillament démontré que b casté en char vaut 42 en int! D
L'opérateur "+" ne fait de la concaténation de chaînes UNIQUEMENT s'i ly a une chaîne d'un des deux côtés de l'opérateur...Donc, avec des "" entre chaque, ça marche!
Mais bon, cet opérateur est à utiliser avec précaution : au delà de 1 occurence dans une chaîne, la JRE instancie un StirngBuffer(...donc bon, t'as plutôt intérêt à faire ça :
StringBuffer sb= new StringBuffer();
sb.append(a);
sb.append(b);
sb.append(c);
sb.append("=" );
if (b=='+' {
sb.append(a+c);
}
if (b=='-' {
sb.append(a-c);
}
if (b=='/' {
sb.append(a/c);
}
if (b='*' {
sb.append(a*c);
}
System.out.println(sb.toString());
voilà voilà..