Wie rechnet Java mir beliege Zahlen quadriert aus?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ersetze

int i = 1;

mit

int i = Integer.parseInt(args[0]);
Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

BitteHelfen539 
Beitragsersteller
 21.10.2021, 23:06

Perfekt, ich hatte das auch zuvor probiert, aber hab das (args[0]); vergessen. Jetzt passt´s. Vielen Dank!

1
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.");
    }
  }
}
Woher ich das weiß:Berufserfahrung – Freiberuflicher Java Entwickler mit 10 Jahren Erfahrung

MrAmazing2  21.10.2021, 22:55

Warum überhaupt in eine Variable zwischenspeichern?

Und die Variable auf Deutsch zu benennen wenn der Klassenname Englisch ist passt auch nicht

0
Xearox  21.10.2021, 22:57
@MrAmazing2

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

1
Xearox  21.10.2021, 23:10
@MrAmazing2

Ich habs nun nochmal etwas erweitert, so sollte es klarer werden, warum ich es in einer Variable zwischengespeichert habe.

0
BitteHelfen539 
Beitragsersteller
 21.10.2021, 23:07

Danke!

0
Xearox  21.10.2021, 23:10
@BitteHelfen539

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.

0