Obiettivo: Familiarizzare con l'operatore di modulo "%" (il resto della divisione intera).
Attività:
x
, di
tipo int
, dopo ognuno degli assegnamenti seguenti?
x = 16 / 2; x = 15 / 2; x = 16 % 2; x = 15 % 2;Scrivete un breve programma per verificare che la vostra risposta è corretta. Suggerimento: È sufficiente scrivere un programma contenente la dichiarazione della variabile
x
e poi i 4 assegnamenti a x
dei 4 valori,
ognuno seguito dall'istruzione di visualizzazione del valore di
x
(System.out.println
).
y
il valore 0 se la variabile intera
x
è pari, 1 se x
è
dispari. Scrivete un breve programma per verificare che la vostra
soluzione è corretta. Suggerimento: ripensate
al risultato delle ultime due operazioni dell'esercizio precedente e
completate (ed eseguite più volte su più valori di
x
) il programma seguente:
/* Programma per "..." */ class PariDispari { public static void main (String[] args) { int y; int x; x = "..."; // valore di prova y = "..."; //espressione da trovare... System.out.println(y); } }
8
(16 diviso due),
7
(15 diviso 2, con la divisione intera, fa 7 con resto
1), 0
(il resto della divisione di 16 per 2) e
1
(il resto della divisione di 15 per 2). Il programma
per verificare la risposta è il seguente:
class ValoriDiX { public static void main (String[] args) { int x; x = 16 / 2; System.out.println(x); x = 15 / 2; System.out.println(x); x = 16 % 2; System.out.println(x); x = 15 % 2; System.out.println(x); } }In questo programma viene usata una variabile
x
di tipo
int
; ad essa vengono assegnati in sequenza i 4 valori
risultanti dalle 4 espressioni, e questi valori vengono via via
visualizzati con l'istruzione
System.out.println(x)
. Compilando ed eseguendo il
programma si ottiene:
>javac ValoriDiX.java >java ValoriDiX 8 7 0 1
x
per due e ne prendiamo il resto (con l'operatore di
modulo %
), otteniamo il valore da assegnare a
x
. Quindi l'espressione cercata è x %
2
e il programma va completato così:
class PariDispari { public static void main (String[] args) { int y; int x; x = 17; y = x % 2; System.out.println(y); } }Assegnando a
x
un valore, ricompilando ogni volta ed
eseguendo si otterrà in output 0
se il valore
assegnato a x
è pari e 1
se è
dispari. Ad esempio, compilando ed eseguendo il programma precedente
si ottiene:
>javac PariDispari.java >java PariDispari 1È necessario ricompilare perché per assegnare un valore a
x
si deve modificare il sorgente Java; in
realtà, come vedremo nelle prossime esercitazioni, sarebbe
possibile determinare durante l'esecuzione il valore da
assegnare a x
, e questo eviterebbe di dover modificare e
ricompilare il programma ogni volta.