En cuanto a incremento de variable de carácter

Satyam Bansal:

El siguiente código no funciona, el compilador dice 'Posible con pérdida de conversión de int a char

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

entonces ¿por qué el siguiente código funciona sin ningún tipo de error:

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

Mientras que la única diferencia en los dos códigos es un mero 'CH = CH + 1' y 'ch + = 1 '?

Mena:

En java el tamaño de una variable char es: 2 bytes, mientras que el tamaño de una variable int es: 4 bytes.

NB: Un byte se compone de 8 bits, que puede contener un valor numérico de hasta 256.

En el primer fragmento de código, cuando lo hace (cap 1) el compilador piensa que el 1 es un valor entero por defecto, por lo tanto en relación con el valor final como un int también. A continuación, los intentos del compilador para poner el valor final en el cap que es un char ... ops .. que está tratando de ajustarse a un valor representado por 4 bytes en una variable que tiene un tamaño de 2 bytes!

Este problema se puede solucionar si lo hace así: Ch = (char) (CH + 1)

En el segundo fragmento, se está incrementando directamente la variable ch, sea cual sea su tamaño es. Así que no se quede en el problema de tratar de ajustar un valor entero en una variable de tipo char.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=433589&siteId=1
Recomendado
Clasificación