Java Problem beim Javaprogrammierung (Anfänger)

Status
Für weitere Antworten geschlossen.

GTA 3

Lt. Junior Grade
Registriert
Nov. 2010
Beiträge
374
Hi Leute, ich hab ein Problem. Bin im Unterricht eigentlich ganz gut mitgekommen aber wenn ich eine Aufgabe seh und ich eine Methode dazu schreiben soll fühl ich mich so als hätte ich alles wieder vergessen..
Wir sind grad beim Thema Bedingungsschleifen und wenn ich eine Beispiel Aufgabe seh die wir lösen müssen kommt es mir so vor das ich auf einmal alles wieder vergessen habe was wir gelernt haben. Und zwar sollen wir eine Methode( Hier: getGgT ) zum Euklidschen Algorythmus schreiben! Leider habe ich das mit dem Operator while nicht richtig verstanden und ich wollt euch fragen, ob ihr mir einen BeispielQuelltext schreiben könnt und denn mir erklären könnt. Die Grundbasis von Klassen, Objekten und Ausgabe etc. kann ich schon. Die müsst ihr mir nicht erklären!

oder: kennt ihr eine Seite die das sehr gut erklärt ?
 
Was gibt es an einer while-Schleife nicht zu verstehen? Wie eine if-Abfrage, nur dass der enthaltene Code so lange ausgeführt wird, wie die Bedingung wahr ist, statt nur einmal.

int i = 0;
while(i < 10)
{
i++;
System.out.println("i ist aktuell: " i); //Bin mir nicht mehr ganz sicher, ob man das so schreibt
}

Diese Beispiel würde i so lange um eins erhöhen und sagen, welchen Wert i gerade annimmt, bis i 10 erreicht. Dann ist die Bedingung "i < 10" falsch und die Schleife wird verlassen.
 
Rechne paar Beispiele für den ggT mal schriftlich durch und versuche ein Muster bzw. den Algorithmus der dahinter steckt, zu erkennen. Wenn du soweit bist, musst du überlegen, wie du das programmtechnisch umsetzen kannst.
 
Ok, hab jetzt ein Code verfasst doch der will nicht richtig funktionieren!

Weiß einer was da der Fehler ist ?

public class BedingungsschleifeIII{



public void getggT2(int n, int m){

if(n < 0 && m < 0 && n < m){
System.out.println("FEHLER!!!");

}
else{
int r = (n%m);
while (r<=0){

n = m;
m = r;
r = n%m;
}
System.out.print("Der ggT von " + n + " und " + m + " ist: " + r);
}
}
}
 
Für so etwas gibts den Debugger und Haltepunkte im Code. Jede vernünftige Entwicklungsumgebung sollte das beherschen.

Das while (r<=0) wird so nicht funktionieren

wenn ich n % m mache kommt immer ein rest von 0 oder höher, somit würde die schleife nur auf == 0 reagieren, oder komplett übersprungen werden. Da du aber warscheinlich m kein vielfaches von n ist wirst du nie in die Schleife springen.

Ein bischen mehr eigeninitiative zum Problem lösen, wäre manchmal echt schön bei den Problemfragen hier *seufz*
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben