2011-03-02 6 views
1
import javax.swing.JOptionPane; 

public class Mate { 

double suma (double x1,double x2) 
    {return x1+x2;} 

double suma (double x1,double x2,double x3) 
    {return x1+x2+x3;} 

double suma (int num [ ]) 

    {int i=num.length; 
    int j=0; 
    int s=0; 

for(j=0;j < i;j++) 

{return (double)(s);}}} // here appears the error "missing return statement" 

class AplicacionMate 

{public static void main (String arg []) 

    {int n[ ]={5,4,3,2,1}; 
    double r=0.0; 
    Mate m=new Mate (); 
    r=m.suma(5,4); 
    JOptionPane.showMessageDialog(null,"La suma 1="+r); 
    r=m.suma(5,5,4); 
    JOptionPane.showMessageDialog(null,"La suma 2="+r); 
    r=m.suma(n); 
    JOptionPane.showMessageDialog(null,"La suma del arreglo="+r); 
    System.exit(0);}} 
+0

Vous assignez jamais une valeur à 's' autre que' 0', de sorte que vous pouvez remplacer l'ensemble de votre 'suma (int [ ]) 'avec' return 0; ', mais ce n'est probablement pas ce que vous voulez. –

+1

Je soupçonne qu'une partie de la raison pour laquelle vous avez de la difficulté à comprendre l'erreur est que le formatage du code est terrible, en particulier par rapport à l'indentation et aux sauts de ligne. Fixez-le et vous aurez une meilleure chance de repérer les erreurs. –

Répondre

3

je pris la liberté de formater votre code. Voici comment la méthode ressemble:

double suma (int num [ ]) { 
    int i=num.length; 
    int j=0; 
    int s=0; 

    for(j=0;j < i;j++) { 
     return (double)(s); 
    } 
} 

Je soupçonne que vous avez essayé d'écrire une somme méthode, a commencé par un bout, et ne pas le compiler. Ceci est probablement ce que vous aviez à l'esprit:

double suma (int num [ ]) { 
    int i=num.length; 
    int j=0; 
    int s=0; 

    for(j=0;j < i;j++) { 
     // here you probably want s += num[j]; 
    } 

    return (double)(s); 

} 

Le compilateur Java ne peut déduire qu'une déclaration (comme un return) est accessible dans des cas très simples. (Pour illustrer: cette méthode ne compilation Pas encore très utile si.!)

double suma (int num [ ]) { 
    int i=num.length; 
    int j=0; 
    int s=0; 

    for(j=0; true; j++) { 
     return (double)(s); 
    } 
} 
+0

merci de prendre la liberté, ça marche parfaitement :) – danielit0w

1
for(j=0;j < i;j++) 

{return (double)(s);}}} // here appears the error "missing return statement" 

Il est peut-être le cas quand il ne reçoit pas en boucle de sorte qu'il ne retournera rien.

Vous devez vous assurer qu'il devrait revenir pour tous les cas

Questions connexes