Utilizzo del riferimento

di il
5 risposte

Utilizzo del riferimento

Salve, non riesco a capire perche' il riferimento "panino" non ha valore all'interno dell if scelta 2 mentre posso usarlo tranquillamente nell if scelta 1

public void esegui(){
		int scelta = schermoMenu();
		while(true){
			if(scelta == 0 ){
				System.out.println("Arrivederci!");
				break;
			}else if(scelta == 1){
				Panino panino = this.leggiDati();
				System.out.println("Valore : " + panino);
			}else if(scelta == 2){
				this.stampaDati(panino);   --> ****** qui si trova l'errore
			}else if(scelta == 3){
				
			}else if(scelta == 4){

			}
			scelta = schermoMenu();
		}
	}

	private void stampaDati(Panino panino){
		System.out.println("Valore : " + panino);
	}

	private Panino leggiDati(){
		System.out.println("Inserici i dati del panino -->");
		System.out.println("Inserisci il codice ");
		String codice = this.leggiStringaNonVuota();
		System.out.println("Inserisci il nome ");
		String nomePanino = this.leggiStringaNonVuota();
		System.out.println("Inserisci il prezzo ");
		int prezzo = this.leggiInteroPositivo();
		Panino panino = new Panino(codice, nomePanino, prezzo);
		System.out.println("Da quanti ingredienti e' composto il panino?  -->");
                int numeroIngredienti = this.leggiInteroPositivo();
		for(int i = 0; i < numeroIngredienti; i++){
			System.out.println("Inserisci i dati dell'ingrediente numero: " + (i + 1));
			Ingrediente ingrediente = this.leggiIngrediente();
			panino.aggiungiIngrediente(ingrediente);
		}
		System.out.println(panino.toString());
		return panino;
	}
ERRORE --> Principale.java:20: error: cannot find symbol this.stampaDati(panino);

5 Risposte

  • Re: Utilizzo del riferimento

    Forse perché panino lo dichiari proprio dentro all'if 1? Non dovresti dichiararlo da un'altra parte?
  • Re: Utilizzo del riferimento

    Weierstrass ha scritto:


    Forse perché panino lo dichiari proprio dentro all'if 1? Non dovresti dichiararlo da un'altra parte?
    L'ho dichiarato all'interno dell' if 1 per poterlo passare al metodo "stampadati" che dovrebbe fare la stampa dell'oggetto panino. Altrimenti non so come farla in un metodo separato piuttosto che dopo l'acquisizione dei dati.
  • Re: Utilizzo del riferimento

    Panino la devi dichiarare fuori dal while
  • Re: Utilizzo del riferimento

    Manusbruzzolo ha scritto:


    L'ho dichiarato all'interno dell' if 1 per poterlo passare al metodo "stampadati" che dovrebbe fare la stampa dell'oggetto panino. ....
    Ma così esiste solo in quella if... se lo dichiari prima, come consigliato, puoi utilizzarlo senza problemi...
  • Re: Utilizzo del riferimento

    oregon ha scritto:


    Manusbruzzolo ha scritto:


    L'ho dichiarato all'interno dell' if 1 per poterlo passare al metodo "stampadati" che dovrebbe fare la stampa dell'oggetto panino. ....
    Ma così esiste solo in quella if... se lo dichiari prima, come consigliato, puoi utilizzarlo senza problemi...
    Ho fatto come mi avete consigliato ma il riferimento panino nell' if 2 continua ad essere indefinito
    
    public void esegui(){
    		int scelta = schermoMenu();
    		Panino panino ;
    		while(true){
    			if(scelta == 0 ){
    				System.out.println("Arrivederci!");
    				break;
    			}else if(scelta == 1){
    				panino = this.leggiDati();
    				System.out.println("Valore : " + panino);
    			}else if(scelta == 2){
    				this.stampaDati(panino);
    			}else if(scelta == 3){
    				
    			}else if(scelta == 4){
    
    			}
    			scelta = schermoMenu();
    		}
    	}
    
Devi accedere o registrarti per scrivere nel forum
5 risposte