Java non prende input

teto

Nuovo Utente
23 Gen 2012
3
0
0
Vi prego aiutatemi, non capisco dove sbaglio...nell'esecuzione di questo programmino semplice semplice non mi prende (non lo legge, non so che fa!!) l'input del secondo oggetto.
allego quello che ho scritto
 

Allegati

  • ProvaImpiegato.txt
    1,4 KB · Visite: 322

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Sei sicuro che non ci sia qualcosa che non va nella tua JVM? Io ho provato e funziona perfettamente.

La classe ProvaImpiegato:
Codice:
import java.util.Scanner;

/**
 * @author alessandro
 * 
 */
public class ProvaImpiegato
{
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        Impiegato operaio1 = new Impiegato("%s\n", " %s\n", 0.0);
        System.out.print("Inserisci nome operaio:");
        String name = input.nextLine();
        operaio1.setNome(name);

        System.out.print("Inserisci cognome operaio:");
        String surname = input.nextLine();
        operaio1.setCognome(surname);

        System.out.print("Inserisci stipendio:");
        double cifra = input.nextDouble();
        operaio1.setStipendio(cifra);

        System.out.print("\n\n");

        System.out.printf("L'OPERAIO %s %s PRENDE AL MESE: %.2f\n",
                operaio1.getNome(), operaio1.getCognome(),
                operaio1.getStipendio());
    }
}
E la classe Impiegato (che ho dovuto fare da me, ma penso la tua sia simile):
Codice:
/**
 * @author alessandro
 * 
 */
public class Impiegato
{
    String nome;
    String cognome;
    double stipendio;

    /**
     * @param string
     * @param string2
     * @param d
     */
    public Impiegato(String string, String string2, double d)
    {
        // TODO Auto-generated constructor stub
    }

    /**
     * @return Il cognome.
     */
    public String getCognome()
    {
        return cognome;
    }

    /**
     * @return Il nome.
     */
    public String getNome()
    {
        return nome;
    }

    /**
     * @return Lo stipendio.
     */
    public double getStipendio()
    {
        return stipendio;
    }

    /**
     * @param cognome
     */
    public void setCognome(String cognome)
    {
        this.cognome = cognome;
    }

    /**
     * @param nome
     */
    public void setNome(String nome)
    {
        this.nome = nome;
    }

    /**
     * @param stipendio
     */
    public void setStipendio(double stipendio)
    {
        this.stipendio = stipendio;
    }

}
E l'esecuzione è questa:
Codice:
Inserisci nome operaio:Pinco
Inserisci cognome operaio:Pallino
Inserisci stipendio:2500


L'OPERAIO Pinco Pallino PRENDE AL MESE: 2500,00
A te invece quale errore restituisce?
 

teto

Nuovo Utente
23 Gen 2012
3
0
0
Intanto grazie mille per avermi risposto...il mio problema non è con un operaio solo, è quando aggiungo il secondo...quando finisce correttamente con operaio1 non mi fa scrivere il nome del secondo.
La JVM dovrebbe essere a posto, finora non ho avuto problemi.

Se vedi bene, nel file che ho allegato, ci sono due operai.

grazie ancora
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ho fatto un po' di ricerche e trovato un problema simile al tuo. Devi aggiungere una chiamata a nextLine() dopo che visualizzi i dati del primo impiegato, così:
Codice:
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        Impiegato operaio1 = new Impiegato("%s\n", " %s\n", 0.0);

        System.out.print("Inserisci nome operaio:");
        String name = input.nextLine();
        operaio1.setNome(name);

        System.out.print("Inserisci cognome operaio:");
        String surname = input.nextLine();
        operaio1.setCognome(surname);

        System.out.print("Inserisci stipendio:");
        double cifra = input.nextDouble();
        operaio1.setStipendio(cifra);

        System.out.print("\n\n");

        System.out.printf("L'OPERAIO %s %s PRENDE AL MESE: %.2f\n",
                operaio1.getNome(), operaio1.getCognome(),
                operaio1.getStipendio());

        // aggiungi questa riga
        input.nextLine();

        Impiegato operaio2 = new Impiegato("%s\n", " %s\n", 0.0);

        System.out.print("\n\n");

        System.out.print("Inserisci nome:");
        String name2 = input.nextLine();
        operaio2.setNome(name2);

        System.out.print("Inserisci cognome:");
        String surnname2 = input.nextLine();
        operaio2.setCognome(surnname2);

        System.out.print("Inserisci stipendio");
        double cifra2 = input.nextDouble();
        operaio2.setStipendio(cifra2);

        System.out.print("\n\n");

        System.out.printf("L'OPERAIO %s %s PRENDE AL MESE: %.2f\n",
                operaio2.getNome(), operaio2.getCognome(),
                operaio2.getStipendio());
    }
Comunque, per seguire il principio DRY (Don't Repeat Yourself), io farei un metodo che esegue tutta l'operazione di recupero dei dati:
Codice:
import java.util.Scanner;

/**
 * @author alessandro
 * 
 */
public class ProvaImpiegato
{
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        for (int i = 0; i < 2; i++) {
            Impiegato impiegato = getNewImpiegato(input);

            System.out.println("L'impiegato " + impiegato.getNome() + " "
                    + impiegato.getCognome() + " guadagna "
                    + impiegato.getStipendio() + " euro al mese.");
            System.out.println();

            input.nextLine();
        }
    }

    protected static Impiegato getNewImpiegato(Scanner input)
    {
        Impiegato impiegato = new Impiegato("%s\n", " %s\n", 0.0);

        System.out.print("Nome impiegato:");
        String name = input.nextLine();
        impiegato.setNome(name);

        System.out.print("Cognome impiegato:");
        String surname = input.nextLine();
        impiegato.setCognome(surname);

        System.out.print("Stipendio impiegato:");
        double cifra = input.nextDouble();
        impiegato.setStipendio(cifra);

        return impiegato;
    }
}
Stesso risultato, ma con meno codice. Questo significa che se dovrai cambiare qualcosa nella tua applicazione che ha a che fare col modo in cui generi la classe Impiegato, dovrai farlo solamente in quel metodo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Script java elenco alfabetico non funziona Javascript 3
R [Java] ShowMessageDialog non funge Java 2
J Java web MVC senRedirect non funziona Java 1
A [Java] Eseguibile .jar che non si apre Java 1
G script Java non visualizza i decimali :( Javascript 4
S [Java] applet non carica classi importate da libreria.jar Java 1
B [Java] alcuni programmi non girano in eclipse Java 4
T [JAVA] pulsante che non chiude Programmazione 0
T [JAVA] pulsante che non chiude Programmazione 0
filomeni Java non funziona Javascript 1
L java api_google Javascript 0
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
C Serializzazione in java Java 1
M AIUTO ESERCIZIO JAVA Javascript 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
F Aiuto java script Javascript 2
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
C Java client / server Java 0
F [OFFRO][RETRIBUITO] PROGRAMMATORE JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
C [Java] testare un metodo con Junit Java 1
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
S [OFFRO] Debug delle tue applicazioni Java Offerte e Richieste di Lavoro e/o Collaborazione 1
L [Java] Aggiungere elementi ad array JSON Java 0
B [Java] Paginazione in risposta HTTP Java 0
A [Java]Date diminuite di un giorno su db MySQL Java 0
K [Java] aiuto switch case Java 1
P [Java] limite destro di un JFrame Java 5
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
A Verifica validità data in Java Java 2
L [Java] Errore json conversione Java 0
Drago73 [Java] leggere/scrivere txt server Java 0
M [Javascript] Java card Java 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
N [Java]problema jasper report dopo compilazione file .jar Java 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
N [Java] jbutton con funzioni Java 2
M [java] esercizio lunghezza array di stringhe Java 0
A [java] problema esercizio Java 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Raziel84 [Java] Combinazione elementi matrice Java 0
A [java] problema esercizio array Java 5

Discussioni simili