Frage zu args[] im Programm

Lestas89

Bekanntes Mitglied
An sich versteh ich was in dem Programm passiert, aber ich weiß nicht, was in args[] abgelegt wurde.

Java:
class ProgrammLesen{
  public static void main(String args[]){
// Aufruf: java ProgrammLesen  abc 6.3 5
double a,zahl;
int i,b;
String text;
a = Double.parseDouble(args [1]);
b = (int)a;
text = args [0];
if (b > 6) {
  i = 10;
}
else {
  i = 100;
}
zahl = i * Integer.parseInt(args [2]);

if (text.equals("abc")) {
  text = "Buchstaben";
} else {
  text = "Zahlen";
}
  System.out.println (zahl + "  " + text);
  System.out.println (args[0]+"  "+ args[2]);
  }
}

Diese drei Befehle bereiten mir Probleme:

a = Double.parseDouble(args [1]);
und
zahl = i * Integer.parseInt(args [2])

Ich soll in dieser Übungsaufgabe schreiben, was das Programm ausgibt. Verstehe aber nicht woher ich wissen soll, was sich in args [1] und args[2] befindet. Dort wurde doch nichts abgelegt.
 
Zuletzt bearbeitet von einem Moderator:
Aber irgendwo müssen diese Werte doch dem Array übergeben werden im Programm. Ich meine damit, dass ich ohne diesen Kommentar garnicht wissen könnte was in dem Array steckt. Wenn ich das Programm ausführe bekomme ich auch einen Fehler
 
Noch nie ein Java Programm von der Konsole gestartet?

java ProgrammLesen abc 6.3 5
Das musst du in der Konsole eingeben, die Argumente kannst du selber wählen.
 
Obwohl eine Frage hätte ich noch. Hier wird doch eine Typumwandlung in integer vorgenommen.
Die Ausgabe sagt mir 500.0 statt 500. Kann mir das noch einer erklären?
 
Der dritte Übergabeparameter also in deinem Fall "5" (String) wird in ein Integer umgewandelt.

Die Variable in die das Ergebnis geschrieben wird und die du auch ausgibst, ist aber immer noch ein double.
Code:
double a,zahl;

Wenn du den double wert zahl in ein int casten würdest, würden dir 500 anstatt 500.0 ausgegeben werden:

Code:
System.out.println ((int)zahl + "  " + text);
 

Zurück
Oben