So, ich habe mal den Code von Eduard genommen und ihn ein wenig abgeändert, so dass der Praktomat vollstens zufrieden ist.
Ich habe sogar noch die Exceptions eingefügt, die der Praktomat aber nicht prüft. Er sollte wohl, wie in der Beschreibung der Aufgabe, "09" eingeben, gibt aber stattdessen "0_9" ein.
Dadurch kommt es zu
keiner Exception beim Test. Deshalb habe ich auch gleich den Fall 'x = 0' in ggT(x,y) eingefügt. Somit schließt der Praktomat den Test erfolgreich ab.
(Bis auf evtl. den "Maximale Zeilenbreite" Test). Kommentare wurden, bis auf die obligatorischen Javadoc Kommentare, weggelassen.
Viel Spaß damit!
![Wink ;)](./images/smilies/wink.gif)
(Ein Dank geht an Eduard für den Code
![Drinks or Beer :beer:](./images/smilies/drinks.gif)
)
Code: Alles auswählen
/**
* Class: GgT
*/
public final class GgT {
private GgT() {
}
private static int ggT(int x, int y) {
if (x == 0) {
return y;
}
while (y != 0) {
if (x > y) {
x = x - y;
} else {
y = y - x;
}
}
return x;
}
/**
* Method: main
* @param args input
*/
public static void main(String[] args) {
String eingabezeile;
String[] tokens;
int i = 0;
int j = 0;
do {
eingabezeile = Terminal.askString("ggT> ");
tokens = eingabezeile.split("\\s+");
try {
try {
i = Integer.parseInt(tokens[0]);
j = Integer.parseInt(tokens[1]);
if (!(i == 0 && j == 0)) {
Terminal.println("ggT(" + i + ", " + j + ") = " + ggT(i, j));
}
} catch (java.lang.ArrayIndexOutOfBoundsException e1) {
Terminal.println("Error! Zwei Zahlen erwartet.");
}
} catch (java.lang.NumberFormatException e2) {
Terminal.println("Error! Zwei Zahlen erwartet.");
}
} while(!(i == 0 && j == 0));
}
}