Quelqu'un peut-il résoudre ma confusion ici est mon code:Différence entre i = i + 1 et i ++
byte i = 0;
i++;
System.out.println(i);
Résultat:
byte i = 0;
i = i+1;
System.out.println(i);
Generate erreur de compilation de temps: Incompatibilité de type: impossible de convertir d'int en octet
Quand je convertir en octets comme: i = (byte) (i+1);
puis obtenir joyeusement résultat
du spectacle cet exemple, je suis COMPRENDRE i = i + 1 & i ++ effectuer ne peut pas même l 'opération ne maintenant i Je veux savoir quelle est exactement la différence entre eux ... !!! Implicitement renvoyé le résultat au type i
Vérifiez ceci: http://stackoverflow.com/questions/13100019/why-can-not-i-add-two-bytes -et-get-an-int-et-i-can-add-deux-final-bytes-get-ab – atom
La distribution implicite se produit en faisant l'incrément .. donc les deux sont identiques à la fin. – Selva
Je pense que vous devriez concentrer votre apprentissage sur les différences entre les types de données primitifs ** octet ** et ** int ** - et les conversions entre ceux-ci. – GhostCat