Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148

    problema "missing return statement "

    il javac mi da :

    menu2.java:74: missing return statement
    }
    ^
    1 error


    nel seguente codice:

    import java.io.*;
    class menu2
    {
    public static void main(String args[])
    {
    boolean fine=false;
    int sc;
    InputStreamReader In = new InputStreamReader(System.in);
    BufferedReader Tastiera = new BufferedReader(In);
    sc=menu();
    switch(sc){
    case 1:{
    int a;
    int b;
    int c;
    try
    {
    System.out.println("inserisci il primo addendo");
    a=Integer.parseInt(Tastiera.readLine());
    System.out.println("inserisci il secondo addendo");
    b=Integer.parseInt(Tastiera.readLine());
    c=a+b;
    System.out.println("è uguale a "+c);
    }
    catch(Exception E)
    {
    System.out.println("errore nel programma");
    }break;
    }


    case 2:{
    int d;
    int e;
    int f;
    try
    {
    System.out.println("inserisci il primo numero");
    d=Integer.parseInt(Tastiera.readLine());
    System.out.println("inserisci il secondo numero");
    e=Integer.parseInt(Tastiera.readLine());
    f=d-e;
    System.out.println("è uguale a "+f);
    }
    catch(Exception E)
    {
    System.out.println("errore nel programma");
    }break;
    }

    }
    }

    static int menu(){
    int sc;
    InputStreamReader In = new InputStreamReader(System.in);
    BufferedReader Tastiera = new BufferedReader(In);
    try{
    System.out.println("=========================");
    System.out.println("1 per l'addizione");
    System.out.println("=========================");
    System.out.println("2 per la sottrazione");
    System.out.println("=========================");
    System.out.println("3 per terminare");
    System.out.println("=========================");
    sc=Integer.parseInt(Tastiera.readLine());
    return sc;
    }
    catch(Exception E){
    System.out.println("errore nel programma");}



    }

    }

    come posso risolvere?





  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Se compare un'eccezione cosa ritorna?
    codice:
    static int menu(){
       int sc;
       InputStreamReader In = new InputStreamReader(System.in);
       BufferedReader Tastiera = new BufferedReader(In);
       try{
           System.out.println("=========================");
           System.out.println("1 per l'addizione");
           System.out.println("=========================");
           System.out.println("2 per la sottrazione");
           System.out.println("=========================");
           System.out.println("3 per terminare");
           System.out.println("=========================");
           sc=Integer.parseInt(Tastiera.readLine());
           return sc;
       }
       catch(Exception E){
       System.out.println("errore nel programma");
       return null;}
    }

    Perchè deve sapere che cosa tornare in caso di exception.
    Perchè il return è circoscritto al try{}catch, ma se esce cosa deve fare??
    Ecco perchè ti da quell'errore di compilazione.

    Poi utilizza i tag CODE!!!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    148
    fatto!
    ma ora mi da :

    menu2.java:72: incompatible types
    found : <nulltype>
    required: int
    return null;}
    ^
    1 error

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da @DI3GO@
    Se compare un'eccezione cosa ritorna?
    codice:
    static int menu(){
       int sc;
       InputStreamReader In = new InputStreamReader(System.in);
       BufferedReader Tastiera = new BufferedReader(In);
       try{
           System.out.println("=========================");
           System.out.println("1 per l'addizione");
           System.out.println("=========================");
           System.out.println("2 per la sottrazione");
           System.out.println("=========================");
           System.out.println("3 per terminare");
           System.out.println("=========================");
           sc=Integer.parseInt(Tastiera.readLine());
           return sc;
       }
       catch(Exception E){
       System.out.println("errore nel programma");
       return null;}
    }

    Perchè deve sapere che cosa tornare in caso di exception.
    Perchè il return è circoscritto al try{}catch, ma se esce cosa deve fare??
    Ecco perchè ti da quell'errore di compilazione.

    Poi utilizza i tag CODE!!!

    Perchè gli fai ritornare null se il metodo è int?

    @killerbomb: semplicemente fai restituire (ad esempio) un valore di default tipo 0 o -1
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Originariamente scritto da Alex'87
    Perchè gli fai ritornare null se il metodo è int?
    Molto semplice, perchè non ho idea del range di valori che lui può considerare validi, oppure per implementazioni future dove in quel menu potrebbe decidere di valutare valori anche negativi....
    Per questo ho impostato nulll.....Poi anche perchè non mi sono concentrato sullo switch, ma appena ho letto parte del codice ed il problema, avevo già intuito di cosa si trattava ( capitava spesse volte anche a me ).

    Ed in più ammetto il grossolano errore, dove un int non può assumere il valore null ( d'istinto lo faccio con le String...). Quindi doppia colpa ed errore e chiedo scusa per l'errore grossolano....Ottimo lavoro Alex'87
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  6. #6
    Se si è interessati a ritornare valore null o un numero intero si può usare l'oggetto Integer.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.