Salut,
Envoyé par
Seloa
ça marche impec mais c'est pas très propre. Y'a-t-il un moyen plus propre/conventionnel de faire ?
Perso je ne vois pas vraiment le problème à cela... mais tu peux aussi faire :
1 2
| System.out.print(tabCar[1]);
System.out.print(tabCar[4]); |
Ou bien encore :
System.out.printf("%c%c", tabCar[1], tabCar[4]);
Envoyé par
Seloa
Et dans tous les cas comment se fait-il que ce ""+ change toute la donne dans ce cas présent ?
C'est le problème des opérateurs : le résultat varie selon plusieurs critères.
Avec tabCar[1]+tabCar[4] tu fais une somme entre la valeur numérique de deux caractères.
'c' est représenté par la valeur 99, et 'n' par la valeur 110, et donc la somme des deux donne la valeur 209... et vu que les calculs sur des char sont "transformé" en int, cela revient à appeler la méthode print(int) ce qui produit l'affichage de la valeur numérique au lieu du caractère correspondant.
Lorsque tu rajoutes ""+ tu ne fais plus une somme mais une concaténation, et chaque élément est donc ajouté à la chaine, ce qui produit le bon affichage...
Bref : faut faire gaffe avec les opérateurs car le type et l'ordre des éléments peut produire des résultats différents.
(et encore les problèmes sont limité car il n'y a pas de surcharges d'opérateurs dans le langage)
Envoyé par
Seloa
Y'a-t-il un interet a déclarer la variable avant de la modifier ? J'ai l'impression que ça rajoute une ligne pour rien et que ça ne rend pas le code plus compréhensible, au contraire même. Je fais erreur ?
Non tu as tout à fait raison : il n'y a aucun intérêt à déclarer la variable avant, et c'est plus verbeux et moins compréhensible.
C'est une vieille habitude venant de certains langage où il était nécessaire de déclarer les variables au début d'une fonction avant de les utiliser, mais c'est totalement inutile en Java.
Au contraire même il est même préférable de les déclarer au dernier moment...
a++
Partager