Wie rechnet Java mir beliege Zahlen quadriert aus?
Schreiben Sie ein Programm Square , welches eine ganze Zahl (Integer) als Argument von
der Konsole übergeben bekommt und das Quadrat dieser Zahl berechnet. Die ̈übergebene
Zahl kann sowohl positiv, als auch negativ sein. Geben Sie das Ergebnis auf der Standard-
ausgabe aus und machen Sie ansonsten keine weiteren Ausgaben.
Ansatz bisher:
public class Square {
public static void main(String[] args) {
int i= 1 =>
System.out.println(i*i);
}
}
Das Problem besteht darin, dass Ich möchte, dass Java mir eine beliebige Zahl quadriert ausspucken kann, jedoch macht er das nur für 1, da ich i=1 gesetzt habe. Was muss Ich nun ändern, damit mein Programm mir zum Beispiel sowas ausgibt:
java Square 7
49
2 Antworten
Ersetze
int i = 1;
mit
int i = Integer.parseInt(args[0]);
Perfekt, ich hatte das auch zuvor probiert, aber hab das (args[0]); vergessen. Jetzt passt´s. Vielen Dank!
public class Square {
public static void main(String[] args) {
String arg1 = args[0];
int zahl = Integer.parseInt(arg1);
System.out.println(zahl*zahl);
}
}
Man kann auch einfach
public class Square {
public static void main(String[] args) {
System.out.println(Integer.parseInt(args[0]) * Integer.parseInt(args[0]));
}
}
machen oder
public class Square {
public static void main(String[] args) {
int zahl = Integer.parseInt(args[0]);
System.out.println(zahl*zahl);
}
}
Wenn das Programm nicht abstürzen soll und der Anwender nochmal die Chance haben soll, eine andere Zahl einzugeben kannst du folgendes machen.
public class Square {
public static void main(String[] args) {
String arg1 = args[0];
try {
int zahl = Integer.parseInt(arg1);
System.out.println(zahl*zahl);
} catch (NumberFormatException e) {
// Wenn arg1 keine Zahl ist, wird hier der Fehler abgefangen
System.out.println(arg1 + " ist keine Zahl.");
}
//-------------Hier fängt die neue Eingabe an --------------
System.out.println("Geben sie eine Zahl ein.");
Scanner s = new Scanner(System.in); //Scanner wird angelegt
arg1 = s.nextLine(); //arg1 bekommt die nächste Zeile aus der Consolen Eingabe zugewiesen.
try {
int zahl = Integer.parseInt(arg1);
System.out.println(zahl*zahl);
} catch (NumberFormatException e) {
System.out.println(arg1 + " ist keine Zahl.");
}
}
}
kein Problem ... der vierte Codeblock müsste so funktionieren. Ich habs jetzt selbst nicht getestet, habs ausm Kopf heraus geschrieben.
Allerdings weiß ich nicht, ob du schon mit Try Catch gearbeitet hast.
Falls nicht, damit kann man Fehler abfangen, wenn man weiß, dass möglicherweise ein bestimmter Code ein Fehler auslösen könnte. Error Handling schimpft sich das.
Das mache ich eigentlich überall, wo ich mit Daten arbeite. Vorteil dabei, das Programm arbeitet in der Regel weiter, ohne sich zu beenden.
Warum überhaupt in eine Variable zwischenspeichern?
Und die Variable auf Deutsch zu benennen wenn der Klassenname Englisch ist passt auch nicht
habe meine nochmal editiert, während du deinen Kommentar geschrieben hast :D ...
zwischen Speichern um ggf. einen Parse Error abzufangen.
Ich programmiere eigentlich alles in Englisch ^^ so komme ich auch nicht in die Versuchung Umlaute zu verwenden :D
Ich habs nun nochmal etwas erweitert, so sollte es klarer werden, warum ich es in einer Variable zwischengespeichert habe.
Danke!