# Erklärung bei Programm mit .length



## steffen777 (18. Feb 2007)

Hallo liebe Java-Forum Nutzer!

Habe hier ein kleines Programm bei mir zuhause ausgeführt. Da ich noch nicht die nötige Routine besitze, ist mir nicht genau klar, wie der Ablauf des Programms stattfindet. Konkret: ich möcht wissen wie die beiden Zahlen 3 und 4 im Programm abgearbeitet werden. Und wie Java mit dem Begriff args.length umgeht.
Für Hilfe wäre ich sehr dankbar!!
Steffen



```
class Test2  {
    public static double laenge(double[]v)  {
    
        double betrag=0;
        for(int i=0;i<v.length;i++)
        betrag=betrag+v[i]+v[i];
        betrag=Math.sqrt(betrag);
        return betrag;
        }
        public static void main(String[] args)  {
        
        double z;
        double[] x=new double[args.length];
        for (int i=0;i<args.length;i++)
          x[i]=Double.parseDouble(args[i]);
        z=laenge(x);
        System.out.println(x.length);
        System.out.println(z);
        }
    }
```

_[Edit by Beni: Codetags eingefügt]_


----------



## Gast (19. Feb 2007)

hallo,

du übergibst in der mainmethode ein Stringarray Bsp"1","2","3",..).
dann erzeugst du hier --> double[] x = new double[args.length];
ein neues array, was doublewerte enthalten wird, die maximallänge des Arrays, ist auf die länge des übergabearrays deklariert. (args.length)

danach füllst du es in der forschleife, mit deinen übergebenen werte.

dann rufst du mit z=laenge(x) die methode:  public static double laenge(double[] v) auf und übergibst ihr das neue doublearray, was du erstellt hast.

zu deinen zahlen:
wenn man 3 und 4 übergibt:

in der mainmethode:
hier verändern sich die zahlen nicht, sie werden nur in das neue array gelegt: --> x[0] = 3; x[1] = 4;

in der laengenmethode:
hier wird die for-schleife 2mal durchlaufen, da sich 2 objekte in dem array befinden.
6=0+3+3; <-- erster durchlauf
14=6+4+4; <-- zeiter durchlauf

dann wird die wurzel aus dem ergebnis gebildet:
3,7416573867..... = math.sqrt(14) 

hoffe, konnt dir helfen


----------



## Guest (19. Feb 2007)

Gast hat gesagt.:
			
		

> hallo,
> in der laengenmethode:
> hier wird die for-schleife 2mal durchlaufen, da sich 2 objekte in dem array befinden.
> 6=0+3+3; <-- erster durchlauf
> ...




Hallo! 
Vielen Dank für die schnelle und ausführliche Antwort!
Wird hier in der Schleife zuerst "a" mit den zahlen 3 und 4 abgearbeitet und dann an "b" übergeben, oder läuft die Zahl 3 durch "a" dann durch "b" ??

         for(int i=0;i<v.length;i++)
     a  betrag=betrag+v_+v;
     b  betrag=Math.sqrt(betrag);
         return betrag;


Vielen Dank!!
Steffen777_


----------



## Gast (19. Feb 2007)

"for(int i=0;i<v.length;i++) 
a betrag=betrag+v_+v; 
b betrag=Math.sqrt(betrag); 
return betrag; 
"

"Wird hier in der Schleife zuerst "a" mit den zahlen 3 und 4 abgearbeitet ", jep
du kannst es auch so schreiben:

for(int i=0;i<v.length;i++) {
  betrag=betrag+v+v; 
}
betrag=Math.sqrt(betrag); 
return betrag; 

also, wird zuerst die forschleife behandelt, und danach mit dem betrag weiter gearbeitet.
die schreibweise ohne die klammern, verwendet man nur, wenn man eine anweisung hat.
programmierer sind faul _


----------

