Programmazione in Java Claudia Raibulet
Tipo char Osservazione: È un tipo intero in Java, quindi si possono utilizzare tutte le operazioni disponibile per i numeri interi char a=a, b=b; int x = a + b; System.out.println(x= + x); Risultato: 195 char a=a; char b=B; char x=\; char y=\\; char z=\n;...
Assegnazione dei valori alle variabili Piu casi: Assegnazione di un valore int x; // dichiarazione di una variabile x = 10; // inizializzazione della variabile x Assegnazione del contenuto di unaltra variabile int x, y; // dichiarazione di due variabili x = 10; // inizializzazione della variabile x y = x; // y ha lo stesso contenuto/valore di x Assegnazione del risultato di una espressione int x=5, y=2, z; // dichiarazione ed inizializzazione // di due variabili (x e y) e // dichiarazione della variabile z z = x+y; // assegnazione del risultato della somma // tra x e y alla variabile z
Operatori aritmetici OperatoreDescrizioneUsoSignificato + Somma op1+op2 Somma il valore di op1 e quello di op2 - Sottrazione op1-op2 Sottrae al valore di op1 quello di op2. * Moltiplicazione op1*op2 Moltiplica il valore di op1 con quello di op2 / Divisione op1/op2 Divide il valore di op1 con quello di op2 % Modulo op1%op2 Calcola il resto della divisione fra il valore di op1 e quello di op2. - Negazione -op1 Trasforma il valore di op1 in positivo o negativo.
Operatori di incremento/decremento OperatoreDescrizioneUsoSignificato ++ Incrementa loperando di 1 (prefissa) ++op Incrementa op di 1; valuta il valore dopo aver incrementato ++ Incrementa loperando di 1 (postfissa) op++ Incrementa op di 1; valuta il valore prima di incrementato -- Decrementa loperando di 1 (prefissa) --op Decrementa op di 1; valuta il valore dopo aver decrementato -- Decrementa loperando di 1 (postfissa) op-- Decrementa op di 1; valuta il valore prima di decrementato
Precedenza operatori */%*/% + - Massima precedenza Minima precedenza
Operatori Computano una funzione Possono richiedere uno o due operandi: Operatori unari: richiedono un solo operando o Esempio: i++; Operatori binari: richiedono due operandi o Esempio: i+j
Espressioni aritmetiche Sono composte da variabili (o valori) e operatori aritmetici che producono come risultato un valore Esempi: (a+b+c)/3 a+b/c+d-5*e Osservazione: il tipo del risultato dipende dal tipo degli operandi Esempio: int x = 9, y = 2; int z = 0; z=x/y; // Risultato 4 float x = 9, y = 2; float z = 0; z=x/y; // Risultato 4.5
Cast implicito E fatto automaticamente quando un tipo memorizzato su un numero piu basso di bit e assegnato ad un tipo memorizzato su un numero piu grande di bit byte->short->int->long->float->double Esempio: int x = 5; float y; y = x; // il valore di x viene convertito // in un float e poi assegnato a y
Cast esplicito E necessario quando un tipo memorizzato su un numero piu grande di bit e assegnato ad un tipo memorizzato su un numero piu basso di bit Sintassi: (tipo)nomeVariabile Esempio: int x; float y=5.7; x = (int)y; // in x e memorizzato il valore 5 Osservazione: il cast esplicito effettua un troncamento!
Espressioni booleane Sono composte da variabili (o valori) e operatori booleani che producono come risultato un valore che puo assumere soltanto due valori: true o false Esempi: a>b a+b/c==d-5*e Gli operatori booleani confrontano due valori numerici restituendo un valore di tipo boolean come risultato
Operatori logici/relazionali OperatoreDescrizioneUsoSignificato == Uguale a op==op2 op1 e op2 sono uguali? != Diverso da op1!=op2 pp1 e op2 sono diversi < Minore di op1<op2 op1 e minore di op2 <= Minore o uguale a op1<=op2 op1 e minore o uguale a op2 > Maggiore di op1>op2 op1 maggiore di op2. >= Maggiore o uguale a op1>=op2 op1 e maggiore o uguale a op2
Operatori condizionali OperatoreDescrizioneUsoSignificato & AND op1 & op2 AND logico tra op1 e op2 | OR op1 | op2 OR logico tra op1 e op2 ! NOT !op1 op1 negato && AND (abbreviato) op1&&op2 AND logico tra op1 e op2 – abbreviato nel senso che se op1 e falso allora op2 non e piu valutato || OR (abbreviato) op1 || op2 OR logico tra op1 e op2 – abbreviato nel senso che se op1 e true allora op2 non e piu valutato
Istruzione if – controllo del flusso Da la possibilita di scegliere tra piu strade percorribili dopo la valutazione di una condizione if (condizione) { istruzione1; istruzione2; … } else { istruzione3; istruzione4; } SE (condizione) ALLORAistruzione1; ALTRIMENTIistruzione2; if (condizione) istruzione1; //puo non esistere lopzione else
if annidati if (condizione1) if (condizione2) istruzione1; else istruzione2; else if (condizione3) istruzione3; else istruzione4;
Esercizio 1 Dato un valore intero si chiede di stampare a video: negativo se x < 0 piccolo se 0 x < 100 medio se 100 x < 1000 grande x 1000
Soluzione 1 Esercizio 1 public class Numero { public static void main (String args[]) { int x=1000; if (x<0) System.out.println("negativo"); else if (x<100) System.out.println("piccolo"); else if (x<1000) System.out.println("medio"); else System.out.println("grande"); }
Soluzione 2 Esercizio 1 public class NumeroVariante { public static void main (String args[]) { int x=1000; if (x<0) System.out.println("negativo"); if (x>=0 && x<100) System.out.println("piccolo"); if (x>=100 && x<1000) System.out.println("medio"); if (x>=1000) System.out.println("grande"); }
Esercizio 2 Considerando due valori interi si chiede di calcolare: La somma dei due numeri se entrambi sono positivi Il prodotto dei due numeri se entrambi sono negativi Di stampare allo standard output i valori dei due numeri in tutti gli altri casi
Soluzione Esercizio 2 public class DueNumeri {public static void main (String args[]) {int x=10, y=-5; int somma = 0, prod = 1; if (x>0 && y>0) {somma = x+y;; System.out.println(La somma: + somma); } else if (x<0 && y<0) {prod = x*y; System.out.println(Il prodotto + prod); } else {System.out.println("medio"); System.out.println("grande"); }
Esercizio 3 Si chiede di verificare se un numero intero su 3 cifre e divisibile per 3.
Soluzione Esercizio 3 public class Divisibile {public static void main (String args[]) {int n = 204; int somma = 0, temp=n; somma+=temp%10; temp/=10; somma+=temp%10; temp/=10; somma+=temp%10; temp/=10; if ((somma%3)==0) System.out.println(n + divisibile per 3); else System.out.println(n + NON divisibile per 3); }