Erklärung bei Programm mit .length

Status
Nicht offen für weitere Antworten.
S

steffen777

Gast
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


Code:
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]
 
G

Gast

Gast
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 :)
 
G

Guest

Gast
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
14=6+4+4; <-- zeiter durchlauf

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

hoffe, konnt dir helfen :)


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
 
G

Gast

Gast
"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 ;)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben