Guten Tag,
wir sollen für die Uni einen Code implementieren, welche über die Eingabeaufforderung mit dem Befehl
"java Euclid x y" den größten gemeinsamen Teiler für x und y ausrechnet.
Leider konnte ich das bisher nur über einen Scanner lösen, was die Aufgabe jedoch nicht so wie vorgesehen erfüllt.
Mein Programm sieht wie folgt aus :
import java.util.InputMismatchException;
import java.util.Scanner;
public class Euclid {
public static void main (String[] args) {
try {
Scanner s = new Scanner(System.in);
System.out.println ("Geben sie die erste Zahl ein : ");
int a = s.nextInt();
System.out.println ("Gebend sie die zweite Zahl ein : ");
int b = s.nextInt();
System.out.println("Der größte gemeinsame Teiler ist : " + euclid (a,b));
s.close();
}
public static int euclid (int a, int b) {
if (a >= 0 && b >= 0 )
{
if (b == 0) return a;
else return euclid (b, a%b);
}
else
{
throw new IllegalArgumentException();
}
}
}
Leider kann man hier nicht mit dem Befehl "java Euclid x y " arbeiten, sondern nur das Programm aufrufen und in der Eingabeaufforderung selber
Zahlen einfügen und die ausrechnen lassen.
Hat jemand vielleicht ein paar Tipps, wie ich das so implementiert bekomme, dass ich die Aufgabenstellung richtig erfülle ?
Vielen dank im voraus, bin schonmal einen guten Schritt nach vorne gekommen 🙏
import java.util.InputMismatchException;
import java.util.Scanner;
public class Euclid {
public static void main (String[] args) {
try {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("Der größte gemeinsame Teiler ist : " + euclid (a,b));
}
public static int euclid (int a, int b) {
if (a >= 0 && b >= 0 )
{
if (b == 0) return a;
else return euclid (b, a%b);
}
else
{
throw new IllegalArgumentException();
}
}
}
Für "java Euclid 192 141" kommt bei mir jetzt als ggt 3 raus.
Für "java Euclid -192 -141" kommt auch die gewünschte Ausgabe "Beide zahlen müssen positiv sein".
Für "java Euclid abc def" kommt aber auch "Beide Zahlen müssen positiv sein"
Die gewünschte Ausgabe bei Buchstaben als Argument "Es dürfen nur Zahlen eingegeben werden" habe ich bei der Implementierung mit dem Scanner richtig erhalten.
Werden Buchstaben als Eingabe mit dem parseInt als negative Zahlen betrachtet oder wie soll ich das ganze verstehen ?