Sto affrontando il paragrafo sulla promozione automatica e il casting e l'esercizio appena svolto è il seguente:
Creare una classe che svolga delle operazioni aritmetiche.
In particolare la divisione tra due interi, la moltiplicazione tra un char e uno short, la somma tra un int e un float e la sottrazione tra i risultati ottenuti.
Tenere presente la promozione automatica nelle espressioni e utilizzare il casting propriamente.
la soluzione è questa:
codice:
public class Aritmetica
{
public static void main(String args[])
{
int a = 5;
int b = 3;
double r1 = (double)(a/b);
System.out.println(r1);
char c = 'a';
short s = 5000;
int r2 = c*s;
System.out.println(r2);
int i = 6;
float f = 3.14F;
float r3 = i+f;
System.out.println(r3);
double r4 = r1 - r2 - r3;
System.out.println(r4);
}
}
Io sinceramente credo di averci capito poco e infatti sono venuti fuori una serie di dubbi.
- perchè r1 va dichiarato come double e necessita del casting sempre a double?
- perchè la moltiplicazione tra un char e uno short può essere inserita in un int e senza usare casting?
- perchè la somma tra un int e un float può essere inserita in un float e senza usare il casting?
- perchè la differenza tra un double, un int e un float può essere inserita in un double senza usare il casting?