Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não Entendi o Resultado

Olá galera eu não entendi o resultado ter dado "b" e "c" o "a" tudo bem que nem o código mostra que letra = 'a' mas porque o valor =66 ser "b" e a soma com cast ser "c".

public class TestaCaracteres {

    public static void main (String [] args) {
        char letra = 'a';
        System.out.println(letra);

        char valor = 66;
        System.out.println(valor);

        valor = (char) (valor + 1);
        System.out.println(valor);
    }
}
2 respostas
solução!

Wellington, tudo bem contigo?

O motivo é que o tipo char, internamente é armazenado como um número. De acordo com a tabela ASCII, veja: https://www.ascii-code.com/

O caractere 'B' corresponde ao valor 66 decimal. Dai quando você soma 66 + 1 = 67. 67 corresponde ao caractere 'C'. Experimente outros números e veja também este exemplo: http://www.softwareandfinance.com/Java/Print_ASCII_Character.html

Pesquise mais sobre o tipo char e tabela ASCII. Existem outros tipos de codificações de caracteres. Mas o tipo primitivo char do java armazena os valores conforme a tabela ASCII.

Caso sua dúvida tenha sido resolvida, não esquecer de marcar o tópico como solucionado, se não, poste aqui ainda se ficou com alguma dúvida.

Um abraço e bons estudos.

Olá Wellington, tudo bem?

Na aula o professor está trabalhando com char, mesmo ele declarando um número, este número continua preso em um caractere.

Na aula ele menciona algumas vezes a tabela Unicode e a tabela ascii aqui você consegue visualizar essa tabela, assim, ficará mais fácil de compreender. Nessas tabelas o valor 66 corresponde ao caractere B e o 67 ao caractere C.

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software