RISOLTO Java .length()

Stato
Discussione chiusa ad ulteriori risposte.

fabio1999ita

Utente Attivo
550
65
CPU
Ryzen 7 5800x
Dissipatore
Corsair iCUE H150i ELITE CAPELLIX
Scheda Madre
Asus b505-e
HDD
ssd samsung 500gb
RAM
2x16 3600mhz
GPU
rtx 3080ti
Monitor
samsung curvo
PSU
FOCUS GX-850
Case
Corsair iCUE 5000X
Net
2.5gbit/s
OS
windows 10
salve ho un problema nella gestione della lunghezza dell' user e password:
devo far in modo che sia user che password siano almeno di 3 caratteri (le variabili scritte li sono tutte String) .
quando eseguo e metto come valore user "2" e password "123" esce e continua invece di rifare il ciclo, invece se metto user "22" password "33" si rifa' tutto il ciclo come dovrebbe essere

di seguito il codice
Java:
do{
      System.out.println("registrazione");
      System.out.println("");
      System.out.print("inserisci nuovo user: ");
      newuser = sc.next();
      System.out.print("inserisci nuova password: ");
      newpassword = sc.next();
      System.out.println();
      if(newuser.length() <= 2 && newpassword.length() <= 2){
         System.out.println("errore! utente e password devono avere almeno 3 caratteri!");
      }
}while(newuser.length() <= 2 && newpassword.length() <= 2);
 
Ultima modifica:

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Cambia gli and con gli or ( && -> || ).
 
  • Mi piace
Reazioni: fabio1999ita

fabio1999ita

Utente Attivo
550
65
CPU
Ryzen 7 5800x
Dissipatore
Corsair iCUE H150i ELITE CAPELLIX
Scheda Madre
Asus b505-e
HDD
ssd samsung 500gb
RAM
2x16 3600mhz
GPU
rtx 3080ti
Monitor
samsung curvo
PSU
FOCUS GX-850
Case
Corsair iCUE 5000X
Net
2.5gbit/s
OS
windows 10
E ma io voglio che entrambi siano max di 3 di lunghezza se metto || me ne fa o uno o l'altro
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit

fabio1999ita

Utente Attivo
550
65
CPU
Ryzen 7 5800x
Dissipatore
Corsair iCUE H150i ELITE CAPELLIX
Scheda Madre
Asus b505-e
HDD
ssd samsung 500gb
RAM
2x16 3600mhz
GPU
rtx 3080ti
Monitor
samsung curvo
PSU
FOCUS GX-850
Case
Corsair iCUE 5000X
Net
2.5gbit/s
OS
windows 10
Entrambi di minimo 3 caratteri quindi user ciao password ciao va bene invece user re password fr non va bene

ok, ho provato e sembra funzionare come mi hai detto tu, mi spieghi gentilmente il perchè?
io pensavo dato che entrambi le condizioni devono essere cosi' allora ci metto && anzi che || che fa o una o l'altra
 
Ultima modifica da un moderatore:

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
&& significa che per essere vera devono essere entrambe vere. || è vera se entrambe sono vere o anche una sola è vera. Nel tuo caso bisogna usare l'or, perchè basta che una sola condizione sia vera ( nel tuo caso length < 2 ) affinchè si continui il ciclo. Ancora più in dettaglio, posto user = ci e password = miao, sia il tuo if che il while ti uscivano perchè le condizioni interne erano false ( user era true perchè minore di 2, mentre password era false perchè > 4).
Ti consiglio di guardarti le tabelle delle verità dell'and, or, xor e compagnia bella
 
  • Mi piace
Reazioni: fabio1999ita

fabio1999ita

Utente Attivo
550
65
CPU
Ryzen 7 5800x
Dissipatore
Corsair iCUE H150i ELITE CAPELLIX
Scheda Madre
Asus b505-e
HDD
ssd samsung 500gb
RAM
2x16 3600mhz
GPU
rtx 3080ti
Monitor
samsung curvo
PSU
FOCUS GX-850
Case
Corsair iCUE 5000X
Net
2.5gbit/s
OS
windows 10
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili