RISOLTO [Java] il metodo che è richiamato in un'altra classe si blocca

Stato
Discussione chiusa ad ulteriori risposte.

Manu999

Nuovo Utente
12
4
Ciao a tutti, ho un piccolo problema facendo questo programmino, praticamente dentro un metodo viene eseguito un do-while, dentro questo do-while dopo la verifica del numero preso in input dopo la domanda "vuoi continuare" il metodo che è richiamato in un'altra classe si blocca, impedendomi di inserire la stringa si o no, vi metto qui il codice:

Codice:
public class Computatore {
    Scanner scan = new Scanner(System.in);
 
    public void PariDispari()
    {
    String a;
        do
        {
            System.out.println("inserire il valore");
            int v = scan.nextInt();
            if(v % 2 == 0)
            {
                System.out.println("il valore è pari");
            }
            else if(v % 2 != 0)
            {
                System.out.println("il sistema è dispari");
            }
        
         System.out.println("vuoi continuare?");
          
             a = scan.nextLine();
        }while(a.equals("si"));
    }
}

Ringrazio in anticipo chi risponderà.
 
Ultima modifica da un moderatore:

sp3ctrum

Amministratore
Staff Forum
16,012
7,857
CPU
AMD Ryzen 5 3900X
Dissipatore
Scythe Mugen 5 rev.b Push&Pull
Scheda Madre
ASUS TUF Gaming B550M-Plus WIFI
HDD
Nvme Samsung EVO 1Tb + SSD Samsung evo 850 250gb + Toshiba P300 3Tb
RAM
HyperX FURY 16gb 3200Mhz
GPU
ASUS Dual GeForce RTX 4070 OC White Edition 12GB GDDR6X
Audio
Topping DX3 Pro + Focusrite Scarlett 2i2 + Mackie MR524 + Beyer DT 770 Pro + Presonus SubWoofer
Monitor
LG Ultragear 27gp850
PSU
Corsair RM850x 80 PLUS Gold
Case
Thermaltake V200 RGB
Net
Vodafone 1000Mb
OS
Windows 11 Pro
Prossima volta meglio usare il tag codice
 
  • Mi piace
Reazioni: memset

Ibernato

Utente Èlite
4,328
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Ciao a tutti, ho un piccolo problema facendo questo programmino, praticamente dentro un metodo viene eseguito un do-while, dentro questo do-while dopo la verifica del numero preso in input dopo la domanda "vuoi continuare" il metodo che è richiamato in un'altra classe si blocca, impedendomi di inserire la stringa si o no, vi metto qui il codice:

Codice:
public class Computatore {
    Scanner scan = new Scanner(System.in);
 
    public void PariDispari()
    {
    String a;
        do
        {
            System.out.println("inserire il valore");
            int v = scan.nextInt();
            if(v % 2 == 0)
            {
                System.out.println("il valore è pari");
            }
            else if(v % 2 != 0)
            {
                System.out.println("il sistema è dispari");
            }
       
         System.out.println("vuoi continuare?");
         
             a = scan.nextLine();
        }while(a.equals("si"));
    }
}

Ringrazio in anticipo chi risponderà.
Quale è il metodo? Non capisco
 

sp3ctrum

Amministratore
Staff Forum
16,012
7,857
CPU
AMD Ryzen 5 3900X
Dissipatore
Scythe Mugen 5 rev.b Push&Pull
Scheda Madre
ASUS TUF Gaming B550M-Plus WIFI
HDD
Nvme Samsung EVO 1Tb + SSD Samsung evo 850 250gb + Toshiba P300 3Tb
RAM
HyperX FURY 16gb 3200Mhz
GPU
ASUS Dual GeForce RTX 4070 OC White Edition 12GB GDDR6X
Audio
Topping DX3 Pro + Focusrite Scarlett 2i2 + Mackie MR524 + Beyer DT 770 Pro + Presonus SubWoofer
Monitor
LG Ultragear 27gp850
PSU
Corsair RM850x 80 PLUS Gold
Case
Thermaltake V200 RGB
Net
Vodafone 1000Mb
OS
Windows 11 Pro

Dumah Brazorf

Utente cAttivo
Utente Èlite
7,607
3,543
A parte che se non è pari è per forza dispari quindi non serve il secondo if. Poi il "sistema" è dispari?
Quand'è che lo scanner viene istanziato? Crei un'istanza della classe Computatore e poi chiami il metodo PariDispari?
Fai istanziare lo scanner all'inizio del metodo. Se serve in altri metodi lo farai anche la.
Poi quando hai roba che può andar male tipo lo scanner usa il try catch per beccare l'errore.
 
Ultima modifica:
  • Mi piace
Reazioni: Manu999

Manu999

Nuovo Utente
12
4
Ti ringrazio gentilissimo
Post unito automaticamente:

A parte che se non è pari è per forza dispari quindi non serve il secondo if. Poi il "sistema" è dispari?
Quand'è che lo scanner viene istanziato? Crei un'istanza della classe Computatore e poi chiami il metodo PariDispari?
Fai istanziare lo scanner all'inizio del metodo. Se serve in altri metodi lo farai anche la.
Poi quando hai roba che può andar male tipo lo scanner usa il try catch per beccare l'errore.
Ti ringrazio per la risposta, poi ho risolto, avevo sbagliato alla fine nella parentesi dentro il while, invece di String ho utilizzato char, per quello che devo fare mi va bene anche char, questo forum mi piace proprio per questi confronti che ti fanno riflettere ed accorgere delle distrazioni
Post unito automaticamente:

Si, dovresti condividere la classe main dove avvii il programma
Ti ringrazio per la disponibilità poi ho già risolto
 
Ultima modifica:
  • Mi piace
Reazioni: DispatchCode
Stato
Discussione chiusa ad ulteriori risposte.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili