hi,
ich versuche gerade mein erstes Programm in Java zu schreiben, bisher gefällt mir die Sprache ganz gut (ich kannte C# schon ein wenig, bin aber eigentlich mit Delphi unterwegs).
Nun möchte ich dass nacheinander zwei Zahlen eingelesen werden und von diesen soll dann der ggT berechnet werden.
nun habe ich das Problem, dass er nach der ersten Eingabe (einmal etwas eingeben und enter drücken) gleich das zweite Read ausführt. Außerdem ließt Read afaik nur ein Zeichen und setzt den Zeiger auf das nächste, sodass ich zwar mit
39 den ggT aus 3 und 9 berechnen kann, mehr aber nicht
Also bräuchte ich eine andere Funktion, gibt es sowas wie readln, ich hab mal etwas von readline gelesen, es aber nicht einbauen können.
Des weiteren habe ich Probleme mit Typecasts, toString scheint nie so richtig zu funktionieren und meistens scheint man es auch nicht zu brauchen (ich bin typecasting von pascal gewohnt).
Von den Eingaben bekomme ich mit Read auch immer nur den Ascii code, sodass ich erst 48 subtrahieren muss, was ich nicht gerade elegant finde
Hier ist mein Source:
Vielen Dank schonmal,
mfg
ich versuche gerade mein erstes Programm in Java zu schreiben, bisher gefällt mir die Sprache ganz gut (ich kannte C# schon ein wenig, bin aber eigentlich mit Delphi unterwegs).
Nun möchte ich dass nacheinander zwei Zahlen eingelesen werden und von diesen soll dann der ggT berechnet werden.
nun habe ich das Problem, dass er nach der ersten Eingabe (einmal etwas eingeben und enter drücken) gleich das zweite Read ausführt. Außerdem ließt Read afaik nur ein Zeichen und setzt den Zeiger auf das nächste, sodass ich zwar mit
39 den ggT aus 3 und 9 berechnen kann, mehr aber nicht
Also bräuchte ich eine andere Funktion, gibt es sowas wie readln, ich hab mal etwas von readline gelesen, es aber nicht einbauen können.
Des weiteren habe ich Probleme mit Typecasts, toString scheint nie so richtig zu funktionieren und meistens scheint man es auch nicht zu brauchen (ich bin typecasting von pascal gewohnt).
Von den Eingaben bekomme ich mit Read auch immer nur den Ascii code, sodass ich erst 48 subtrahieren muss, was ich nicht gerade elegant finde
Hier ist mein Source:
Code:
public class HelloWorld {
public static int ggT(int a, int b)
{
if ((a == 0) || (b == 0))
return 0;
int r;
do
{
r = b;
b = a % b;
a = r;
}
while (b != 0);
return a;
}
public static void main(String[] args) {
int res = 0, a = 0, b = 0;
System.out.println("Berechnung des größten gemeinsamen Teilers:");
System.out.println("Bitte geben Sie die erste Zahl ein!");
try {
/* Hier sowas wie readln */
a = System.in.read() - 48;
} catch (java.io.IOException e) {
System.out.println("Fehlerhafte Eingabe!");
}
System.out.println("Bitte geben Sie die zweite Zahl ein!");
try {
b = System.in.read() - 48;
} catch (java.io.IOException e) {
System.out.println("Fehlerhafte Eingabe!");
}
res = ggT(a, b);
System.out.println("Der ggT von " + a + " und " + b + " ist " + res);
}
}
Vielen Dank schonmal,
mfg