Aiutatemi a risolvere.

di il
9 risposte

Aiutatemi a risolvere.

Per favore aiutatemi a risolvere questo problema.Non riesco a capire perchè mi segnali errore l'else e l'ultima graffa...
import java.lang.*;
public class prova }

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		int vocaboli_imparati = 1000;
		if (vocaboli_imparati > 999);
		{
			System.out.println("ok bravo ");
			System.out.println("continua così");
		}
      else
		{
		 System.out.println("ci riuscirai ");
		 System.out.println("forza e coraggio");
    }

9 Risposte

  • Re: Aiutatemi a risolvere.

    Quattro cose:

    1) importare java.lang è superfluo, è già sempre importato automaticamente.

    2) qui
    public class prova }
    la graffa è sbagliata, serve quella di apertura.

    3) qui
    if (vocaboli_imparati > 999);
    c'è un ; finale. Tecnicamente crea una istruzione "vuota" come corpo del if e sicuramente NON è quello che intendevi. E comunque così facendo il else è fuori posto.

    4) l'ultima } chiude il else ma devi chiudere anche il main e la classe.
  • Re: Aiutatemi a risolvere.

    Riguardo al punto 2, se la prima graffa la sostituisco con una aperta mi segnala errore quella successiva di chiusura e se quest'ultima la sostituisco con una di apertura mi segnala errore la orima delle due.

    Riporto il ocdice:
    import java.lang.*;
    public class prova {
    
    	public static void main(String[] args) }
    		// TODO Auto-generated method stub
    Punto 3: ok ci siamo!

    Nel punto 4 invece non sono capace di chiudere il main e la classe, ho provato ad aggiungere un'altra, ma niente da fare...
  • Re: Aiutatemi a risolvere.

    fmn ha scritto:


    	public static void main(String[] args) }
    graffa sbagliata

    fmn ha scritto:


    non sono capace di chiudere il main e la classe, ho provato ad aggiungere un'altra, ma niente da fare...
    C'è il blocco della classe, del metodo main, del if, del else. Ciascuno deve avere una graffa di apertura { e una graffa di chiusura }
    Tutto qui ...
  • Re: Aiutatemi a risolvere.

    andbin ha scritto:


    fmn ha scritto:


    	public static void main(String[] args) }
    graffa sbagliata
    Scusa se mi ripeto, ma se cambio quella graffa e quindi la sostituisco con quella aperta, mi segnala sbagliata quella precedente.
  • Re: Aiutatemi a risolvere.

    fmn ha scritto:


    Scusa se mi ripeto, ma se cambio quella graffa e quindi la sostituisco con quella aperta, mi segnala sbagliata quella precedente.
    I vari blocchi di classi, metodi, istruzioni, si annidano uno dentro l'altro. Il metodo main è annidato dentro la classe.
    public class Prova {    // apre la classe
        public static void main(String[] args) {    // apre il main
       
            // .....
       
        }    // chiude il main
    }    // chiude la classe
    Forza ... non si può restare bloccati sulle graffe ..
  • Re: Aiutatemi a risolvere.

    andbin ha scritto:


    fmn ha scritto:


    I vari blocchi di classi, metodi, istruzioni, si annidano uno dentro l'altro. Il metodo main è annidato dentro la classe.
    public class Prova {    // apre la classe
        public static void main(String[] args) {    // apre il main
       
            // .....
       
        }    // chiude il main
    }    // chiude la classe
    Forza ... non si può restare bloccati sulle graffe ..
    Sai comè se il videocorso che sto seguendo non le ha mai spiegate, mi risulta un po' difficile!
    Fin per carità è un corse che a mio avviso è molto valido, però ha le sue pecche come tutti...
    Ora però la situazione graffe mi risulta certamente più chiara, sapresti indicarmi qualche fonte sul web dove vengono spiegate? A meno che non mi abbia già detto tutto tu.
  • Re: Aiutatemi a risolvere.

    Lascia perdere i videocorsi e COMPRATI UN LIBRO!
  • Re: Aiutatemi a risolvere.

    fmn ha scritto:


    Sai comè se il videocorso che sto seguendo non le ha mai spiegate, mi risulta un po' difficile!
    Serve un buon libro.

    fmn ha scritto:


    Ora però la situazione graffe mi risulta certamente più chiara, sapresti indicarmi qualche fonte sul web dove vengono spiegate? A meno che non mi abbia già detto tutto tu.
    Non c'è molto da sapere .... i linguaggi C-like (C, C++, Java, Javascript ecc...) usano le graffe per delineare blocchi, classi, metodi/funzioni e quant'altro. A differenza di altri linguaggi (es. Python) dove le graffe non ci sono.

    In Java le graffe sono obbligatorie per classi/costruttori/metodi mentre per i costrutti tipo if, for, ecc.. il "corpo" può essere una singola istruzione, senza le graffe, oppure un blocco di istruzioni per cui le graffe servono a delimitarle.

    In sostanza:
    for (int i = 0; i < arr.length; i++)
        if (arr[i] > 0)
            System.out.println(arr[i]);
    è uguale a
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] > 0) {
            System.out.println(arr[i]);
        }
    }
    Abituati comunque a mettere sempre le graffe anche se il corpo di if/for/while/ecc.. è fatto da 1 sola istruzione, perché così è più leggibile.
  • Re: Aiutatemi a risolvere.

    Andbin ti ringrazio tantissimo, molto gentile!
Devi accedere o registrarti per scrivere nel forum
9 risposte