1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010
2 Istruzione di assegnamento Listruzione di assegnamento permette di assegnare un valore ad una variabile precedentemente dichiarata. In Java la forma generale di tale istruzione è: = ; In cui: identificatore della variabile valore da assegnare alla variabile Loperatore di assegnamento in Java è il simbolo =. Il valore da assegnare deve essere dello stesso tipo della variabile specificata a sinistra del simbolo =
3 Istruzione di assegnamento (esempio) public class EsempioAssegnamento { public static void main(String arg[]) { byte isByte; short isShort; int isInt; long isLong; float isFloat; double isDouble; char isChar; boolean isBoolean; isByte=98; isShort=20000; isInt= ; isLong= ; isFloat=2.567; isDouble= ; isChar=a; isBoolean=true; }
4 Inizializzazione di variabile Si può anche assegnare un valore a una variabile nellambito della sua dichiarazione. In questo caso si dice che la variabile viene inizializzata: = ; Attenzione! E una buona abitudine assegnare il valore a una variabile o quando la si dichiara (inizializzazione in fase di dichiarazione) o comunque prima del suo utilizzo. Infatti, il contenuto di una variabile dichiarata ma non inizializzata è INDEFINITO
5 Inizializzazione di variabile (esempio) public class EsempioInizializzazione { public static void main(String arg[]) { byte isByte=98; short isShort=20000; int isInt= ; long isLong= ; float isFloat=2.567; double isDouble= ; char isChar=a; boolean isBoolean=true; }
6 Istruzione di assegnamento Da dove può venire il valore da assegnare ad una variabile? 1.Può essere un valore esplicito = ; 2.Può essere il valore contenuto qualche unaltra variabile dello stesso tipo = ; Esempio: int x; double d; x=10; d=10.234; Esempio: int x; int y; x=10; y=x;
7 Istruzione di assegnamento Da dove può venire il valore da assegnare ad una variabile? 3.Più in generale può essere il risultato della valutazione di unespressione = ; Esempio: int x; int y; x=10; y=(x+2)*(x+1);
8 Istruzione di assegnamento ATTENZIONE! loperatore di assegnamento ha precedenza più bassa rispetto a qualsiasi altro operatore. Ciò significa che nellistruzione Java: = ; prima viene valutato il valore fornito da e poi tale valore viene assegnato alla variabile identificata da. Ad esempio il seguente frammento di codice: int x=1; x=x+1; System.out.println(x); funziona perfettamente e stampa la stringa 2
9 Esempio di programma public class AreaTriangolo { public static void main(String arg[]) { int base; int altezza; int areaTriangolo; base=200;//Assegno un valore esplicito altezza=base;//Assegno una variabile /*Assegno lespressione (in questo caso aritmetica)che fornisce larea del triangolo*/ areaTriangolo=(base*altezza)/2; System.out.println(Area=+areaTriangolo); } NB Le annotazioni del programmatore (i commenti) che stanno dopo // oppure tra /* e */ (evidenziati in grassetto) non sono parte del codice Java e sono completamente ignorate dal compilatore. Servono solo a rendere più comprensibile il funzionamento del programma.
10 Cosè unespressione Unespressione è in generale una combinazione di operatori, di operandi (valori espliciti e variabili) e di parentesi tonde. La sua valutazione produce (restituisce) un valore il cui tipo dipende dagli operandi e dagli operatori che formano lespressione. Ad esempio: (a+b+c)/(p-y)*k ((a+3)*b)-4*c 2.1*a+1.34/b sono tre espressioni, dove a, b, c, p, y e k sono operandi di tipo numerico (numeri interi e in virgola) e +, -, /, * sono gli operatori di somma, sottrazione, divisione e moltiplicazione
11 Gli operatori Un operatore è un simbolo che regola lesecuzione di una certa operazione. Il valore restituito dalloperazione dipende dal tipo di operandi su loperatore agisce e dal tipo di operatore stesso. Un operatore può essere: unario se opera su un solo operando binario se opera su due operandi
12 Gli operatori (qualche notazione…) Indichiamo in generale con OP un operatore qualsiasi e con op1 e op2 due operandi qualsiasi. Si ha che: gli operatori unari possono utilizzare la: notazione prefissa se loperatore appare prima delloperando OP op1 notazione postfissa se loperatore appare dopo loperando op1 OP NB Vedremo solo operatori unari che utilizzano la notazione prefissa (ad esempio loperatore di negazione aritmetica e quello di negazione logica) gli operatori binari in genere utilizzano la notazione infissa in cui loperatore appare tra i due operandi op1 OP op2
13 Precedenze tra operatori Più operatori possono essere combinati in espressioni complesse. Essi hanno una precedenza che determina lordine in cui vengono valutati (cioè eseguiti). Gli operatori con la stessa precedenza vengono valutati procedendo da sinistra a destra dellespressione. Lordine di precedenza può essere modificato utilizzando le parentesi tonde.
14 Precedenze tra operatori Ad esempio, gli operatori aritmetici di moltiplicazione e divisione hanno la precedenza sugli operatori aritmetici di somma e sottrazione. Nei due esempi seguenti: a+b+c+d prima viene valutata a+b, poi si aggiunge ad a+b il valore di c e poi si aggiunge ad a+b+c il valore di d a+b*c+d/e prima viene valutata b*c, poi d/e, poi viene sommato il contenuto di a al risultato di b*c. Infine al risultato di a+b*c viene aggiunto il risultato di d/e. Lordine di valutazione (e soprattutto il risultato) cambierebbe se si scrivesse (a+b)*(c+d)/e
15 Tipi di operatori Gli operatori che vedremo sono: operatore di assegnamento (gia visto!) operatori aritmetici relazionali logici Gli operatori aritmetici permettono di costruire le espressioni aritmetiche (il cui risultato è un numero), mentre gli operatori aritmetici, relazionali e logici permettono di costruire le espressioni booleane (il cui risultato è un valore booleano VERO o FALSO, che in Java corrisponde ai valori true e false del tipo boolean )