Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe"

JavaDaHood

Mitglied
Habe mir jetzt das Buch Schrödinger programmiert Java 2.te Ausgabe zugelegt.😉
Bin mit dem lesen auch schon ein Stück fortgeschritten🙂, habe aber jetzt wieder ein Problem.🙄

Folgender Code (aus dem Buch) ist zum Abbrechen von Schleifen:
Java:
int suchZahl = 5;
for (int i = 0; i < args.length; i++) { *1
int zahl = Integer.parseInt(args[i]); *2
if(zahl == suchZahl) { *4
System.out.println(suchZahl + " gefunden an Stelle " + (i+1));
break;
Wo kommt denn jetzt dieses args.length her?
Warum wird das an dieser Stelle verwendet?

Edit:
Im Buch konnte ich dazu folgendes finden:
Wie du dann prüfst, ob Startparameter übergeben wurden, habe ich dir allerdings noch nicht gezeigt: Am besten du testest einfach, ob die Länge des args-Arrays 0 ist. Die Länge ermittelst du mit args.length.
Und zur Erinnerung: Nachdem du das überprüft hast, kannst du auf den ersten Parameter mit args[0] zugreifen.
 
Das args ist bestimmt der Parameter der Methode. Du hast nur einen Auszug gezeigt, aber vermutlich ist der Code in der main Methode, welche einen Parameter args hat, welcher ein Array aus String Elementen ist.
 
Sorry, aber auf der Buchseite ist das der komplette Code!
Ich gehe aber mal davon aus, dass die main-Methode, generell (im Buch) so verwendet wird:
Java:
public static void main(String[] args)
 
Sorry, aber auf der Buchseite ist das der komplette Code!
Ich gehe aber mal davon aus, dass die main-Methode, generell (im Buch) so verwendet wird:
Java:
public static void main(String[] args)
Diese Annahmen sehen sogar gut aus. In der Vorgängerversion sieht die Seite so aus: 12610

Weiterhin könnte folgender Code weiterhelfen:
Code:
public class Suchzahl {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
int suchZahl = 5;
for (int i = 0; i < args.length; i++) { 
int zahl = Integer.parseInt(args[i]); 
if(zahl == suchZahl) { 
System.out.println(suchZahl + " gefunden an Stelle " + (i+1));
break;
 }
}
}
}
Danach auf der Kommandozeile kompilieren und z.B. via "java Suchzahl 5" (oder: ...Suchzahl 1 4 5) aufrufen, Ergebnis: "5 gefunden an Stelle 1"
 
Die Länge eines Arrays kann man mit length abfragen.

String[] args ist der Parameter der main Methode. In diesem Array args werden die Kommandozeilen-Parameter gespeichert.

Wenn also ein Programm die Kommandozeilen-Parameter auswerten möchte, dann kann es erst einmal schauen, wie viele Parameter mitgegeben wurden und da kommt dann das args.length ins Spiel.

Also kleines, konkretes Beispiel:
Code:
public class Test {
        public static void main (String[] args) {
                System.out.println("Anzahl Parameter: " + args.length);
                for (int i=0; i<args.length; i++) {
                        System.out.println("Argument " + i + " ist: " + args[i]);
                }
        }
}

Den Code einfach in eine Datei Test.java packen, dann aufrufen:
javac Test.java

Danach ruf einfach mal auf:
java Test
java Test Arg1 Arg2 Arg3

Du siehst also die Ausgabe bezüglich Anzahl übergebene Parameter und dann werden die Parameter ausgegeben. Daran erkennst Du dann auch den Zugriff auf Arrays: Erstes Element ist die 0 ....
 

Neue Themen


Zurück
Oben