Tipos primitivos

4 respostas
T

Não consigo compreender por que esse código está errado…

public class TiposPrimitivos {

public static void main(String[] args) {

short num1 = 2, num2 = 2, total = 0;

total = num1 + num2;

System.out.println(total);

}

}

se alguém puder me ajudar eu agradeço… :-o

4 Respostas

M

Ao invés de:

public class TiposPrimitivos { 
public static void main(String[] args) { 
short num1 = 2, num2 = 2, total = 0; 
total = num1 + num2; 
System.out.println(total); 
} 
}

coloque:

public class TiposPrimitivos { 
public static void main(String[] args) { 
short num1 = 2, num2 = 2, total = 0; 
total = num1 + num2; 
System.out.println(String.valueOf(total)); 
ou
System.out.println(""+total); 
} 
}
esdmorais

No Eclipse dá um erro de que os valores a serem somados deve ser feito um cast, eu não vejo qual é a necessidade.

Dá uma olhada na classe, que eu modifiquei:

public class TiposPrimitivos {
    public static void main(String[] args) {
        short num1 = 2, num2 = 2, total = 0;
        total = (short) (num1 + num2);
        System.out.println(total);
    }
}

E matheuslf, para imprimir valores através do System.out.println() não é necessário fazer conversão ou concatenar com String, o método possui sobrecarga para vários tipos :slight_smile:

F

esdmorais:
No Eclipse dá um erro de que os valores a serem somados deve ser feito um cast, eu não vejo qual é a necessidade.

Dá uma olhada na classe, que eu modifiquei:

public class TiposPrimitivos {
    public static void main(String[] args) {
        short num1 = 2, num2 = 2, total = 0;
        total = (short) (num1 + num2);
        System.out.println(total);
    }
}

E matheuslf, para imprimir valores através do System.out.println() não é necessário fazer conversão ou concatenar com String, o método possui sobrecarga para vários tipos :slight_smile:

esdmorais,

Você precisa dar o cast por causa que no java, não existe operação matematica com tipo menor que int, como o short ou byte.
Quando ele fez a soma de dois short o java converte eles para inteiro, e quando tenta botar um inteiro dentro de um short da erro de compilação.

Isso é claro se eu não tiver enganado. :roll:

M

Não conhecia a sobrecarga dos println()…
bom saber…

Criado 26 de maio de 2012
Ultima resposta 26 de mai. de 2012
Respostas 4
Participantes 4