Perfezionamento controllo duplicati

This commit is contained in:
La Programmatrice Verde 2025-09-25 23:20:42 +02:00
parent 25a29efc2b
commit 59e7e1f256

View File

@ -36,10 +36,18 @@ public class Garage {
} }
private boolean TrovaDuplicati(Auto p_auto) { private boolean TrovaDuplicati(Auto p_auto) {
boolean ritorno = false; boolean ritorno = false, vuoto = true;
for (int i = 0; i < this.veicoli.length && !ritorno; i++) {
if (this.veicoli[i].GetTarga().equals(p_auto.GetTarga())) { for (int i = 0; i < this.veicoli.length && vuoto; i++) {
ritorno = true; if (this.veicoli[i] != null) {
vuoto = false;
}
}
if (!vuoto) {
for (int i = 0; i < this.veicoli.length && !ritorno; i++) {
if (this.veicoli[i] != null && this.veicoli[i].GetTarga().equals(p_auto.GetTarga())) {
ritorno = true;
}
} }
} }
@ -51,11 +59,11 @@ public class Garage {
int posizione = this.NextPosizioneLibera(); int posizione = this.NextPosizioneLibera();
try { try {
veicoli[posizione] = new Auto(); Auto auto = new Auto();
if (this.TrovaDuplicati(veicoli[posizione])) { if (this.TrovaDuplicati(auto)) {
ritorno = "Errore: l'auto con la targa inserita è già parcheggiata nel garage."; ritorno = "Errore: l'auto con la targa inserita è già parcheggiata nel garage.";
} } else {
else { veicoli[posizione] = auto;
ritorno = "L'auto è posteggiata nella posizione %d.".formatted(posizione); ritorno = "L'auto è posteggiata nella posizione %d.".formatted(posizione);
} }
} catch (ArrayIndexOutOfBoundsException e) { } catch (ArrayIndexOutOfBoundsException e) {
@ -90,7 +98,7 @@ public class Garage {
* p_selettore = false -> posti liberi * p_selettore = false -> posti liberi
*/ */
String ritorno; String ritorno;
boolean vuoto = true; boolean vuoto = true;
int posti[] = TrovaPosti(p_selettore); int posti[] = TrovaPosti(p_selettore);
@ -104,7 +112,7 @@ public class Garage {
ritorno = "Non c'è nessun posto " + (p_selettore ? "occupato" : "libero") + "."; ritorno = "Non c'è nessun posto " + (p_selettore ? "occupato" : "libero") + ".";
} else { } else {
int i = 0; int i = 0;
ritorno = "I posti " + (p_selettore ? "occupati" : "liberi") + " sono:\n"; ritorno = "I posti " + (p_selettore ? "occupati" : "liberi") + " sono:\n";
for (int posizione : posti) { for (int posizione : posti) {
if (posizione != -1) { if (posizione != -1) {
if (p_selettore) { if (p_selettore) {