En ce qui concerne Increment de caractère variable

Satyam Bansal:

Le ci-dessous le code ne fonctionne pas, le compilateur dit « possible Lossy Conversion de int en char »

public class Main
{
    public static void main(String[] args) {
        char ch;
        ch = 65;
        ch=ch+1;
        System.out.println(ch);
    }
}

alors pourquoi le ci-dessous code fonctionne sans erreur:

public class Main
{
    public static void main(String[] args) {
        char ch;
        ch = 65;
        ch+=1;
        System.out.println(ch);
    }
}

Alors que la seule différence dans les deux codes est un simple « ch = ch + 1 » et « ch + = 1 »?

Mena:

En java la taille d'une variable char est: 2 octets, tandis que la taille d'une variable int est: 4 octets.

NB: Un octet est composé de 8 bits, qui peuvent contenir une valeur numérique allant jusqu'à 256.

Dans le premier extrait de code, lorsque vous faites (ch +1) le compilateur pense que le 1 est une valeur int par défaut, en ce qui concerne donc la valeur finale comme un entier aussi. Ensuite, les essais du compilateur de mettre la valeur finale ch qui est char ... ops .. il tente d'adapter à une valeur représentée par 4 octets dans une variable ayant une taille de 2 octets!

Ce problème peut être résolu si vous aimez ceci: Ch = (char) (ch + 1)

Dans le second extrait, vous incrémentez directement la ch variable quelle que soit sa taille est. Ainsi, vous ne courez pas dans le problème d'essayer d'adapter une valeur int dans une variable char.

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=433269&siteId=1
conseillé
Classement