2017-04-02 1 views
1

Das ist meine erste Frage, also könnte ich dumm klingen, also bitte nichts dagegen! Ich war auf einem Konzept arbeiten, das var args ist, und ich komme mit einem Programm wie folgt zusammen:wie int und int [] in Java mit var args-Methode hinzufügen?

package Method; 
public class VariableArguments { 
public static void main(String[] args) { 
    m1(); 
    m1(10); 
    m1(10,20); 
    m1(10,20,30,40); 
    m1(10,20,30,40,50); 
} 
public static void m1(int... x) 
{ 
    int total = 0; 
    for(int i:x) 
    { 
     total = total + x; 
    } 
    System.out.println("Sum is: "+total); 
} 
} 

Während ich dieses Programm ausgeführt wurde, war ich erhalte eine Fehlermeldung, die ist-

Error:(15, 27) java: bad operand types for binary operator '+'

first type: int second type: int[]

In Zeile 15 heißt es: "Operator '+' kann nicht auf int angewendet werden, int []"

Also kann mir jemand die Lösung für dieses Problem geben? Danke !!

+2

Sollte 'total = total + i;' sein. Du iterierst über 'x' Array. – Justas

+0

Vielen Dank Justas! –

Antwort

1

Sie müssen total zu i (jedes Element) hinzufügen, nicht zu den var args. Array (das heißt, x), so ändern Sie den Code wie:

total = total + i; 
+0

Es funktioniert jetzt .. Vielen Dank Javaguy :) –

0

Wenn Sie dies tun:

total = total + x; 

x ist das Array. Sie können den +-Operator für Arrays und daher den Fehler nicht verwenden. Da Sie über das Array iterierenx, ich spüre Sie dies gewünscht:

total = total + i; 
1

Der Fehler ist, weil Sie versuchen, mathematische Operationen mit völlig inkompatiblen Datentypen ... Sie sind in der Tat zu tun versuchen hinzufügen eine ganze Zahl mit einem Array von ints

Sie sicher meine

total = total + i; 

da beide die gleiche Art (int)

indem diese

total = total + x; 

Sie int von ints zu einem Array hinzugefügt werden ...

1

Vermeiden dumme Fehler, müssen Sie die for-each Methode lernen:

for(int i : x) // this means for every integer value *i* in array *x* 
{ 
     total = total + i ;// this line add the i to total , 
    //total = total + x ;//here array is bad operand for '+' operator . 
} 

Ändern Sie Ihren Code mit dem obigen snnipet, oder Sie können auch eine einfache for-Schleife verwenden.