Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

While Schleife mit (Ausdruck) oder (Bedingung)

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Gast






BeitragVerfasst am: 31. Jan 2006 23:49    Titel: While Schleife mit (Ausdruck) oder (Bedingung) Antworten mit Zitat

Hallo,

ich wollte ma gerne wissen was richtig ist.... oder ist beide das gleiche??


Iteration -> Rekursion:

Code:
while (Bedingung) {
  Anweisung;
}

wird umgewandelt zu:

SchleifeRekursiv() {
               if(Bedingung) {
                          Anweisung;
       SchleifeRekursiv();
    }
}



while -> do/while-Schleife


Code:
while (Ausdruck)
Anweisung;

wird umgewandelt zu:

if (Ausdruck) {
do {
Anweisung;
} while (Ausdruck);
}



....... meine Frage ist jetzt, warum ist einmal nach while (Ausdruck) steht und einmal (Bedingung)????

sind die beide RICHTIG???... oder muss man das so unterschiedlich machen???
Nach oben
dachdecker2
Moderator


Anmeldungsdatum: 11.06.2005
Beiträge: 106
Wohnort: Maintal / Hessen

BeitragVerfasst am: 01. Feb 2006 02:22    Titel: Antworten mit Zitat

Ein paar Worterklärungen:

Bei der Iteration wird ein vorhandener Wert in jedem Rechen durchgang (sog. Iterationsschritt) verfeinert. Die Iterationsschleife führt den Iterationsschritt dabei so lange immer wieder aus, bis eine Abbruchbedingung erfüllt ist. Beispiel:

int fakultaet (int n){
int hilfsvariable;
for (;n>1;n--) hilfsvariable *= n;
return (hilfsvariable);
}

Rekursiv nennt man Funktionen, die sich selbst aufrufen, auch hier muss eine Abbruchbedingung, also ein Programmpfad vorliegen, in dem das Programm sich selbst nicht mehr aufruft. Beispiel:

int fakultaet (int n){
if (n>1) return (1);
else return (fakultaet (n-1));
}

Für rekursive Funktionen lassen sich in der Regel auch iterative Pendants finden und umgekehrt. Ich bin nicht sicher, ob das immer möglich sein muss, ich bilde es mir zumindest ein Augenzwinkern.


Eine Whileschleife führt den schleifenkern solange aus, wie die Bedingung wahr ist - die Bedingung wird im unterschied zur repeat-Schleife vor der ersten Ausführung schon überprüft. Dein Code ist also richtig. Der Ausdruck ist die Bedingung - es kommt dabei auf den sog. Wahrheitswert an ().

ps.: versuche mal ohne bunten Text und ohne Unterstreichungen auszukommen.


// edit: ich hätte fast vergessen noch zu sagen, dass eine rekursive Funktion ohne Parameter sinnlos den Speicher des Rechners vollschreibt. Globale Variable sind an dieser Stelle nicht angebracht und würden die Übersichtlichkeit unnötig beeinträchtigen.

_________________
In a world without walls and fences, who needs windows and gates? [Internet]

Gruß, dachdecker2
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen