Esercizi Java
Esercizio 1
Sezione intitolata “Esercizio 1”Inviare in output il testo Ciao, Java!.
Soluzione spiegata
Basta usare System.out.println() per stampare il testo richiesto.
public class Saluto { public static void main(String[] args) { System.out.println("Ciao, Java!"); }}Il programma esegue una sola istruzione e mostra esattamente il messaggio richiesto.
Esercizio 2
Sezione intitolata “Esercizio 2”Conservare un nome e un’eta in due variabili e inviarli in output.
Soluzione spiegata
Prima salviamo i valori in due variabili, poi li stampiamo.
public class Profilo { public static void main(String[] args) { String nome = "Luca"; int eta = 17;
System.out.println(nome); System.out.println(eta); }}Le variabili permettono di riutilizzare i dati senza riscriverli ogni volta.
Esercizio 3
Sezione intitolata “Esercizio 3”Calcolare la somma di due numeri interi salvati in variabili.
Soluzione spiegata
Usiamo l’operatore + e salviamo il risultato in una terza variabile.
public class Somma { public static void main(String[] args) { int a = 12; int b = 8; int somma = a + b;
System.out.println(somma); }}La variabile somma contiene il totale da stampare alla fine.
Esercizio 4
Sezione intitolata “Esercizio 4”Calcolare l’area di un rettangolo dati base e altezza.
Soluzione spiegata
L’area si ottiene moltiplicando base per altezza.
public class Rettangolo { public static void main(String[] args) { int base = 5; int altezza = 3; int area = base * altezza;
System.out.println(area); }}Il programma esegue un solo calcolo e stampa il valore finale.
Esercizio 5
Sezione intitolata “Esercizio 5”Aumentare di 1 il valore di una variabile intera e mostrarlo prima e dopo.
Soluzione spiegata
Stampiamo il valore iniziale, poi aggiorniamo la variabile e stampiamo il nuovo risultato.
public class Incremento { public static void main(String[] args) { int punti = 10;
System.out.println(punti);
punti = punti + 1;
System.out.println(punti); }}La seconda stampa mostra il nuovo valore ottenuto dopo l’aggiornamento.
Esercizio 6
Sezione intitolata “Esercizio 6”Costruire un saluto unendo una stringa fissa e un nome salvato in variabile.
Soluzione spiegata
Per unire testi usiamo l’operatore +.
public class SalutoNome { public static void main(String[] args) { String nome = "Sara"; String messaggio = "Ciao, " + nome + "!";
System.out.println(messaggio); }}La concatenazione crea una nuova stringa con tutte le parti unite.
Esercizio 7
Sezione intitolata “Esercizio 7”Determinare quanti caratteri contiene una stringa.
Soluzione spiegata
Il metodo length() restituisce la lunghezza del testo.
public class LunghezzaStringa { public static void main(String[] args) { String parola = "Manuale";
System.out.println(parola.length()); }}Il risultato e il numero totale di caratteri presenti nella stringa.
Esercizio 8
Sezione intitolata “Esercizio 8”Estrarre i primi 4 caratteri di una stringa.
Soluzione spiegata
Con substring(0, 4) prendiamo i caratteri dall’indice 0 fino a prima dell’indice 4.
public class Sottostringa { public static void main(String[] args) { String parola = "programmare"; String parte = parola.substring(0, 4);
System.out.println(parte); }}In questo caso il programma stampa prog.
Esercizio 9
Sezione intitolata “Esercizio 9”Leggere un nome da input e stampare un saluto.
Soluzione spiegata
Usiamo Scanner per leggere il testo digitato e poi costruiamo il messaggio.
import java.util.Scanner;
public class SalutoInput { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Nome: "); String nome = scanner.nextLine();
System.out.println("Ciao, " + nome + "!");
scanner.close(); }}Il valore inserito dall’utente viene salvato in nome e riutilizzato nella stampa finale.
Esercizio 10
Sezione intitolata “Esercizio 10”Leggere due numeri interi e stamparne la somma.
Soluzione spiegata
Leggiamo due int con nextInt() e li sommiamo.
import java.util.Scanner;
public class SommaInput { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Primo numero: "); int a = scanner.nextInt();
System.out.print("Secondo numero: "); int b = scanner.nextInt();
System.out.println(a + b);
scanner.close(); }}Il programma lavora direttamente sui due valori letti dal terminale.
Esercizio 11
Sezione intitolata “Esercizio 11”Leggere un prezzo e una quantita e calcolare il totale.
Soluzione spiegata
Per il prezzo usiamo double, mentre la quantita puo essere intera.
import java.util.Scanner;
public class TotaleOrdine { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Prezzo: "); double prezzo = scanner.nextDouble();
System.out.print("Quantita: "); int quantita = scanner.nextInt();
double totale = prezzo * quantita; System.out.println(totale);
scanner.close(); }}Il totale finale si ottiene moltiplicando il costo di una singola unita per il numero di pezzi.
Esercizio 12
Sezione intitolata “Esercizio 12”Calcolare la media di tre numeri letti da input.
Soluzione spiegata
Sommiamo i tre valori e dividiamo il totale per 3.
import java.util.Scanner;
public class MediaTreNumeri { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Primo numero: "); double a = scanner.nextDouble();
System.out.print("Secondo numero: "); double b = scanner.nextDouble();
System.out.print("Terzo numero: "); double c = scanner.nextDouble();
double media = (a + b + c) / 3; System.out.println(media);
scanner.close(); }}La formula della media aritmetica richiede un solo calcolo finale.
Esercizio 13
Sezione intitolata “Esercizio 13”Verificare se un numero intero e pari o dispari.
Soluzione spiegata
Usiamo l’operatore % per controllare il resto della divisione per 2.
import java.util.Scanner;
public class PariDispari { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Numero: "); int numero = scanner.nextInt();
if (numero % 2 == 0) { System.out.println("Pari"); } else { System.out.println("Dispari"); }
scanner.close(); }}Se il resto e zero, il numero e pari; altrimenti e dispari.
Esercizio 14
Sezione intitolata “Esercizio 14”Determinare se un numero e positivo, negativo oppure zero.
Soluzione spiegata
Con if, else if ed else gestiamo i tre casi possibili.
import java.util.Scanner;
public class SegnoNumero { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Numero: "); int numero = scanner.nextInt();
if (numero > 0) { System.out.println("Positivo"); } else if (numero < 0) { System.out.println("Negativo"); } else { System.out.println("Zero"); }
scanner.close(); }}Le condizioni vengono controllate dall’alto verso il basso fino al primo caso vero.
Esercizio 15
Sezione intitolata “Esercizio 15”Determinare il maggiore tra due numeri.
Soluzione spiegata
Confrontiamo i due valori e stampiamo quello piu grande.
import java.util.Scanner;
public class MaggioreDiDue { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Primo numero: "); int a = scanner.nextInt();
System.out.print("Secondo numero: "); int b = scanner.nextInt();
if (a > b) { System.out.println(a); } else { System.out.println(b); }
scanner.close(); }}Il programma decide quale valore mostrare usando una sola condizione.
Esercizio 16
Sezione intitolata “Esercizio 16”Determinare il giudizio di un voto numerico usando tre fasce: ottimo, sufficiente, insufficiente.
Soluzione spiegata
Con else if possiamo distinguere piu intervalli.
import java.util.Scanner;
public class GiudizioVoto { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Voto: "); int voto = scanner.nextInt();
if (voto >= 9) { System.out.println("Ottimo"); } else if (voto >= 6) { System.out.println("Sufficiente"); } else { System.out.println("Insufficiente"); }
scanner.close(); }}Java controlla i casi in ordine e si ferma al primo che risulta vero.
Esercizio 17
Sezione intitolata “Esercizio 17”Verificare se una persona puo entrare solo se ha almeno 18 anni e ha il biglietto.
Soluzione spiegata
Combiniamo due condizioni con l’operatore logico &&.
public class Ingresso { public static void main(String[] args) { int eta = 20; boolean haBiglietto = true;
if (eta >= 18 && haBiglietto) { System.out.println("Ingresso consentito"); } else { System.out.println("Ingresso negato"); } }}L’ingresso viene consentito solo quando entrambe le condizioni risultano vere.
Esercizio 18
Sezione intitolata “Esercizio 18”Mostrare il nome di un giorno partendo da un numero da 1 a 3.
Soluzione spiegata
switch e comodo quando confrontiamo una stessa variabile con valori precisi.
import java.util.Scanner;
public class GiornoSettimana { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Numero giorno: "); int giorno = scanner.nextInt();
switch (giorno) { case 1: System.out.println("Lunedi"); break; case 2: System.out.println("Martedi"); break; case 3: System.out.println("Mercoledi"); break; default: System.out.println("Valore non valido"); }
scanner.close(); }}break interrompe lo switch dopo il caso trovato.
Esercizio 19
Sezione intitolata “Esercizio 19”Gestire una scelta di menu con switch: 1 per salutare, 2 per mostrare aiuto.
Soluzione spiegata
Stampiamo il menu, leggiamo la scelta e reagiamo con switch.
import java.util.Scanner;
public class MenuSemplice { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.println("1. Saluta"); System.out.println("2. Aiuto"); System.out.print("Scelta: "); int scelta = scanner.nextInt();
switch (scelta) { case 1: System.out.println("Ciao!"); break; case 2: System.out.println("Scegli 1 oppure 2."); break; default: System.out.println("Scelta non valida"); }
scanner.close(); }}Ogni valore della variabile scelta porta a un comportamento diverso.
Esercizio 20
Sezione intitolata “Esercizio 20”Stampare i numeri da 1 a 5 con un ciclo while.
Soluzione spiegata
Usiamo una variabile contatore che aumenta a ogni giro.
public class WhileUnoCinque { public static void main(String[] args) { int numero = 1;
while (numero <= 5) { System.out.println(numero); numero++; } }}Il ciclo continua finche la condizione resta vera.
Esercizio 21
Sezione intitolata “Esercizio 21”Stampare i numeri da 5 a 1 con un ciclo while.
Soluzione spiegata
Questa volta partiamo da 5 e diminuiamo il contatore.
public class WhileCinqueUno { public static void main(String[] args) { int numero = 5;
while (numero >= 1) { System.out.println(numero); numero--; } }}Il programma si ferma quando numero scende sotto 1.
Esercizio 22
Sezione intitolata “Esercizio 22”Calcolare la somma dei numeri da 1 a n usando while.
Soluzione spiegata
Accumuliamo ogni valore in una variabile somma mentre il contatore avanza.
import java.util.Scanner;
public class SommaDaUnoAN { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("n: "); int n = scanner.nextInt();
int i = 1; int somma = 0;
while (i <= n) { somma = somma + i; i++; }
System.out.println(somma);
scanner.close(); }}Il ciclo aggiunge un numero per volta fino a raggiungere n.
Esercizio 23
Sezione intitolata “Esercizio 23”Continuare a chiedere una password finche non viene inserita la parola java.
Soluzione spiegata
Con while ripetiamo la lettura finche la stringa non coincide con il valore atteso.
import java.util.Scanner;
public class PasswordCorretta { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String password = "";
while (!password.equals("java")) { System.out.print("Password: "); password = scanner.nextLine(); }
System.out.println("Accesso consentito");
scanner.close(); }}La condizione usa equals() per confrontare il contenuto della stringa.
Esercizio 24
Sezione intitolata “Esercizio 24”Stampare i numeri da 1 a 10 con un ciclo for.
Soluzione spiegata
Il for e utile quando sappiamo gia quante ripetizioni servono.
public class ForUnoDieci { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println(i); } }}Il contatore i parte da 1, cresce di 1 e il ciclo si ferma quando supera 10.
Esercizio 25
Sezione intitolata “Esercizio 25”Mostrare la tabellina di un numero da 1 a 10.
Soluzione spiegata
Leggiamo il numero e usiamo un for per moltiplicarlo per tutti i valori da 1 a 10.
import java.util.Scanner;
public class Tabellina { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
System.out.print("Numero: "); int numero = scanner.nextInt();
for (int i = 1; i <= 10; i++) { System.out.println(numero * i); }
scanner.close(); }}Ogni giro del ciclo produce una riga della tabellina.
Esercizio 26
Sezione intitolata “Esercizio 26”Calcolare la somma dei numeri pari da 2 a 20 con un ciclo for.
Soluzione spiegata
Facciamo avanzare il contatore di 2 in 2 e accumuliamo i valori letti.
public class SommaPari { public static void main(String[] args) { int somma = 0;
for (int i = 2; i <= 20; i += 2) { somma = somma + i; }
System.out.println(somma); }}In questo modo il ciclo visita solo i numeri pari e salta quelli dispari.
Esercizio 27
Sezione intitolata “Esercizio 27”Stampare i numeri da 10 a 1 con un ciclo for.
Soluzione spiegata
Anche il for puo contare all’indietro usando i--.
public class ContoAllaRovescia { public static void main(String[] args) { for (int i = 10; i >= 1; i--) { System.out.println(i); } }}Il contatore diminuisce a ogni giro fino a raggiungere il valore finale.
Esercizio 28
Sezione intitolata “Esercizio 28”Inviare in output tutti gli elementi di un array di stringhe.
Soluzione spiegata
Usiamo un for con indice per attraversare tutto l’array.
public class StampaArray { public static void main(String[] args) { String[] nomi = {"Luca", "Sara", "Mina"};
for (int i = 0; i < nomi.length; i++) { System.out.println(nomi[i]); } }}La condizione i < nomi.length evita di uscire dai limiti dell’array.
Esercizio 29
Sezione intitolata “Esercizio 29”Calcolare la somma degli elementi di un array di interi.
Soluzione spiegata
Partiamo da zero e aggiungiamo un elemento alla volta.
public class SommaArray { public static void main(String[] args) { int[] numeri = {4, 7, 2, 9}; int somma = 0;
for (int i = 0; i < numeri.length; i++) { somma = somma + numeri[i]; }
System.out.println(somma); }}Alla fine somma contiene il totale di tutti i valori presenti nell’array.
Esercizio 30
Sezione intitolata “Esercizio 30”Determinare il valore massimo contenuto in un array di interi.
Soluzione spiegata
Usiamo il primo elemento come valore iniziale e poi lo confrontiamo con gli altri.
public class MassimoArray { public static void main(String[] args) { int[] numeri = {12, 5, 28, 9, 17}; int massimo = numeri[0];
for (int i = 1; i < numeri.length; i++) { if (numeri[i] > massimo) { massimo = numeri[i]; } }
System.out.println(massimo); }}Ogni volta che troviamo un numero piu grande, aggiorniamo massimo.
Esercizio 31
Sezione intitolata “Esercizio 31”Contare quanti valori positivi sono presenti in un array di interi.
Soluzione spiegata
Serve un contatore che aumenta solo quando un elemento e maggiore di zero.
public class ContaPositivi { public static void main(String[] args) { int[] numeri = {-3, 4, 0, 7, -1, 2}; int conteggio = 0;
for (int i = 0; i < numeri.length; i++) { if (numeri[i] > 0) { conteggio++; } }
System.out.println(conteggio); }}Il programma considera positivi solo i valori strettamente maggiori di zero.
Esercizio 32
Sezione intitolata “Esercizio 32”Calcolare la media dei valori contenuti in un array di interi.
Soluzione spiegata
Sommiamo tutti i valori e poi dividiamo per la lunghezza dell’array.
public class MediaArray { public static void main(String[] args) { int[] numeri = {6, 8, 7, 9}; int somma = 0;
for (int i = 0; i < numeri.length; i++) { somma = somma + numeri[i]; }
double media = (double) somma / numeri.length; System.out.println(media); }}Il cast a double evita una divisione intera e permette di ottenere anche la parte decimale.
Esercizio 33
Sezione intitolata “Esercizio 33”Verificare se un numero e presente in un array.
Soluzione spiegata
Scorriamo l’array e usiamo una variabile booleana per ricordare se troviamo il valore cercato.
import java.util.Scanner;
public class CercaNumero { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numeri = {3, 8, 12, 5, 9}; boolean trovato = false;
System.out.print("Numero da cercare: "); int valore = scanner.nextInt();
for (int i = 0; i < numeri.length; i++) { if (numeri[i] == valore) { trovato = true; } }
System.out.println(trovato);
scanner.close(); }}Se almeno un elemento coincide con il valore richiesto, trovato diventa true.
Esercizio 34
Sezione intitolata “Esercizio 34”Creare un metodo che stampi una linea di separazione e richiamarlo tre volte.
Soluzione spiegata
Definiamo un metodo piccolo e lo riutilizziamo dove serve.
public class Separatore { public static void stampaSeparatore() { System.out.println("----------"); }
public static void main(String[] args) { stampaSeparatore(); System.out.println("Titolo"); stampaSeparatore(); System.out.println("Fine"); stampaSeparatore(); }}Il metodo evita di riscrivere la stessa istruzione piu volte.
Esercizio 35
Sezione intitolata “Esercizio 35”Creare un metodo che riceva un nome e stampi un saluto personalizzato.
Soluzione spiegata
Il parametro rende il metodo piu flessibile rispetto a una stampa fissa.
public class SalutoMetodo { public static void saluta(String nome) { System.out.println("Ciao, " + nome + "!"); }
public static void main(String[] args) { saluta("Luca"); saluta("Sara"); }}Lo stesso metodo puo essere richiamato con argomenti diversi.
Esercizio 36
Sezione intitolata “Esercizio 36”Creare un metodo che restituisca il quadrato di un numero intero.
Soluzione spiegata
Qui il metodo non stampa subito il risultato, ma lo restituisce con return.
public class QuadratoMetodo { public static int quadrato(int numero) { return numero * numero; }
public static void main(String[] args) { int risultato = quadrato(6); System.out.println(risultato); }}Il valore prodotto dal metodo viene salvato in una variabile e poi stampato.
Esercizio 37
Sezione intitolata “Esercizio 37”Creare un metodo che restituisca il maggiore tra due interi.
Soluzione spiegata
Il metodo confronta i due argomenti e restituisce il valore piu grande.
public class MaggioreMetodo { public static int maggiore(int a, int b) { if (a > b) { return a; } else { return b; } }
public static void main(String[] args) { int risultato = maggiore(14, 9); System.out.println(risultato); }}In questo modo la logica del confronto resta chiusa dentro un metodo dedicato.
Esercizio 38
Sezione intitolata “Esercizio 38”Creare un metodo che calcoli la media di tre numeri e restituisca il risultato.
Soluzione spiegata
Riceviamo tre valori, applichiamo la formula della media e restituiamo il risultato.
public class MediaMetodo { public static double media(double a, double b, double c) { return (a + b + c) / 3; }
public static void main(String[] args) { double risultato = media(8, 7, 9); System.out.println(risultato); }}Il metodo puo essere riutilizzato ogni volta che serve la media di tre numeri.
Esercizio 39
Sezione intitolata “Esercizio 39”Creare un metodo che dica se un numero e pari restituendo un valore booleano.
Soluzione spiegata
Il metodo controlla il resto della divisione per 2 e restituisce true oppure false.
public class PariMetodo { public static boolean isPari(int numero) { return numero % 2 == 0; }
public static void main(String[] args) { System.out.println(isPari(8)); System.out.println(isPari(5)); }}Un metodo booleano e utile quando vuoi riusare una verifica in piu punti del programma.
Esercizio 40
Sezione intitolata “Esercizio 40”Creare un metodo che sommi tutti i valori di un array e restituisca il totale.
Soluzione spiegata
Passiamo l’array al metodo e lasciamo che sia lui a scorrerlo.
public class SommaArrayMetodo { public static int sommaArray(int[] numeri) { int somma = 0;
for (int i = 0; i < numeri.length; i++) { somma = somma + numeri[i]; }
return somma; }
public static void main(String[] args) { int[] valori = {2, 4, 6, 8}; System.out.println(sommaArray(valori)); }}Il metodo riceve i dati dall’esterno e restituisce un solo risultato finale.
Esercizio 41
Sezione intitolata “Esercizio 41”Creare una classe Persona con i campi nome ed eta, poi stampare i valori di un oggetto.
Soluzione spiegata
Definiamo una classe semplice e poi creiamo un oggetto con new.
class Persona { String nome; int eta;}
public class TestPersona { public static void main(String[] args) { Persona persona = new Persona(); persona.nome = "Luca"; persona.eta = 20;
System.out.println(persona.nome); System.out.println(persona.eta); }}L’oggetto persona contiene i dati reali descritti dalla classe Persona.
Esercizio 42
Sezione intitolata “Esercizio 42”Creare una classe Prodotto con i campi nome e prezzo, poi mostrare i dati di un oggetto.
Soluzione spiegata
La classe raggruppa due dati collegati e rende il concetto piu chiaro.
class Prodotto { String nome; double prezzo;}
public class TestProdotto { public static void main(String[] args) { Prodotto prodotto = new Prodotto(); prodotto.nome = "Quaderno"; prodotto.prezzo = 2.50;
System.out.println(prodotto.nome); System.out.println(prodotto.prezzo); }}Invece di usare variabili separate, qui i dati stanno insieme dentro lo stesso oggetto.
Esercizio 43
Sezione intitolata “Esercizio 43”Aggiungere a una classe Persona un metodo che stampi un saluto con il nome dell’oggetto.
Soluzione spiegata
Il metodo puo usare direttamente i campi dell’oggetto su cui viene chiamato.
class Persona { String nome;
void saluta() { System.out.println("Ciao, sono " + nome); }}
public class TestSalutoPersona { public static void main(String[] args) { Persona persona = new Persona(); persona.nome = "Sara";
persona.saluta(); }}Il metodo legge il valore del campo nome dell’oggetto corrente.
Esercizio 44
Sezione intitolata “Esercizio 44”Creare una classe Rettangolo con i campi base e altezza e un metodo che stampi l’area.
Soluzione spiegata
Mettiamo insieme dati e comportamento nella stessa classe.
class Rettangolo { int base; int altezza;
void mostraArea() { System.out.println(base * altezza); }}
public class TestRettangolo { public static void main(String[] args) { Rettangolo rettangolo = new Rettangolo(); rettangolo.base = 6; rettangolo.altezza = 4;
rettangolo.mostraArea(); }}Il metodo usa i campi dell’oggetto per calcolare il risultato senza ricevere parametri.
Esercizio 45
Sezione intitolata “Esercizio 45”Creare una classe Studente con il campo voto e un metodo che dica se il voto e sufficiente.
Soluzione spiegata
Il metodo controlla il valore del campo e stampa un messaggio in base al risultato.
class Studente { int voto;
void mostraEsito() { if (voto >= 6) { System.out.println("Sufficiente"); } else { System.out.println("Insufficiente"); } }}
public class TestStudente { public static void main(String[] args) { Studente studente = new Studente(); studente.voto = 7;
studente.mostraEsito(); }}Questo esercizio unisce una classe semplice con una condizione.
Esercizio 46
Sezione intitolata “Esercizio 46”Leggere 5 numeri da input, salvarli in un array e stamparli tutti.
Soluzione spiegata
Usiamo un primo ciclo per riempire l’array e un secondo ciclo per mostrarne gli elementi.
import java.util.Scanner;
public class LeggiEStampaArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numeri = new int[5];
for (int i = 0; i < numeri.length; i++) { System.out.print("Numero: "); numeri[i] = scanner.nextInt(); }
for (int i = 0; i < numeri.length; i++) { System.out.println(numeri[i]); }
scanner.close(); }}La dimensione fissa dell’array permette di sapere in anticipo quante letture fare.
Esercizio 47
Sezione intitolata “Esercizio 47”Leggere 5 numeri da input e determinare il massimo.
Soluzione spiegata
Prima riempiamo l’array, poi lo scorriamo per trovare il valore piu grande.
import java.util.Scanner;
public class MassimoInputArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numeri = new int[5];
for (int i = 0; i < numeri.length; i++) { System.out.print("Numero: "); numeri[i] = scanner.nextInt(); }
int massimo = numeri[0];
for (int i = 1; i < numeri.length; i++) { if (numeri[i] > massimo) { massimo = numeri[i]; } }
System.out.println(massimo);
scanner.close(); }}Il primo elemento viene usato come riferimento iniziale per i confronti successivi.
Esercizio 48
Sezione intitolata “Esercizio 48”Leggere 5 numeri da input e calcolarne la media.
Soluzione spiegata
Raccogliamo i valori nell’array, calcoliamo la somma e poi dividiamo per il numero di elementi.
import java.util.Scanner;
public class MediaInputArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numeri = new int[5]; int somma = 0;
for (int i = 0; i < numeri.length; i++) { System.out.print("Numero: "); numeri[i] = scanner.nextInt(); somma = somma + numeri[i]; }
double media = (double) somma / numeri.length; System.out.println(media);
scanner.close(); }}La media viene calcolata solo dopo aver letto tutti i valori richiesti.
Esercizio 49
Sezione intitolata “Esercizio 49”Chiedere un testo e continuare a ripetere la richiesta finche non viene inserito fine.
Soluzione spiegata
Questo esercizio allena l’uso di while con stringhe e equals().
import java.util.Scanner;
public class RipetiFincheFine { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String testo = "";
while (!testo.equals("fine")) { System.out.print("Testo: "); testo = scanner.nextLine(); }
System.out.println("Programma terminato");
scanner.close(); }}Il ciclo prosegue finche il valore letto non coincide con la parola di uscita.
Esercizio 50
Sezione intitolata “Esercizio 50”Creare un piccolo menu ripetuto con while e switch che termini quando l’utente sceglie 0.
Soluzione spiegata
Uniamo un ciclo ripetuto e uno switch per gestire piu scelte finche non arriva il comando di uscita.
import java.util.Scanner;
public class MenuRipetuto { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int scelta = -1;
while (scelta != 0) { System.out.println("1. Saluta"); System.out.println("2. Mostra numero fisso"); System.out.println("0. Esci"); System.out.print("Scelta: "); scelta = scanner.nextInt();
switch (scelta) { case 1: System.out.println("Ciao!"); break; case 2: System.out.println(42); break; case 0: System.out.println("Uscita"); break; default: System.out.println("Scelta non valida"); } }
scanner.close(); }}Il programma continua a mostrare il menu finche l’utente non inserisce 0.