Psycho~zicke Geschrieben 22. November 2007 Geschrieben 22. November 2007 Hallöchen!!! Ich hab mal eine frage und zwar versteh ich nicht wie man eine for Schleife in eine while Schleife umwandeln kann. Evt kann mir das ja jemand erklären... Ich weiß ist sicherlich eine doofe frage aber C scheint mir echt nicht zu liegen. Danke schlnmal im vorraus...
baba007 Geschrieben 22. November 2007 Geschrieben 22. November 2007 FOR: für i = 0, lauf solange i kleiner als 100, schrittweise nach vorn WHILE: solange mein i kleiner 100 ist, lauf!! vergiß jedoch nicht das i schrittweise zu erhöhen
Hexagon Geschrieben 22. November 2007 Geschrieben 22. November 2007 Moin. Ganz einfach? Also: for (int i = 0; i < 10; i++) { } könnte man so schreiben: int i = 0; while(i++ < 10) { } Hoffe das hilft. BTW: Wie immer ohne Gewähr...
Psycho~zicke Geschrieben 22. November 2007 Autor Geschrieben 22. November 2007 Also wäre das z.b das is meine for schleife die ich in while umwandeln muss for (iSchleife = 0; iSchleife < iZaehler; iSchleife++) { if (sZeile[iSchleife] == 'e') { sZeile[iSchleife] = 'E'; } } Das ist mein Versuch... while { if (iSchleife < iZaehler) { sZeile[iSchleife] =='e'; } printf ("E"); }
Hexagon Geschrieben 22. November 2007 Geschrieben 22. November 2007 Du merkst schon, daß deinem while die Bedingung fehlt? Und warum hast du das innere total verändert?
Psycho~zicke Geschrieben 22. November 2007 Autor Geschrieben 22. November 2007 oh stimmt da fehlt die Bedingung... Aber wie meinste das das ich das innere total verändert hab?
Hexagon Geschrieben 22. November 2007 Geschrieben 22. November 2007 In der for-Schleife überprüfst du ob die Zeile ein "e" ist und ersetzt es mit "E". Das innere der while-Schleife macht was völlig anderes.
Psycho~zicke Geschrieben 22. November 2007 Autor Geschrieben 22. November 2007 while (iSchleife > iZaehler) { if (iSchleife < iZaehler) { sZeile[iSchleife] =='e'; } sZeile{iSchleife] = 'E'; } Meinst du das das so sein sollte???
Hexagon Geschrieben 22. November 2007 Geschrieben 22. November 2007 Einfache Antwort: Nö. Andere Frage: Möchtest du nur die for-Schleife mit einer while ersetzen?
Psycho~zicke Geschrieben 22. November 2007 Autor Geschrieben 22. November 2007 ja ich möchte die obige For schleife durch eine while ersetzen... hab nur leider absolut keine ahnung wie das funktioniert... aber das siehst du ja selbst
Hexagon Geschrieben 22. November 2007 Geschrieben 22. November 2007 ja ich möchte die obige For schleife durch eine while ersetzen... hab nur leider absolut keine ahnung wie das funktioniert... aber das siehst du ja selbst Ja, man merkts. :e@sy Fangen wir mal so an: for (iSchleife = 0; iSchleife < iZaehler; iSchleife++) { if (sZeile[iSchleife] == 'e') { sZeile[iSchleife] = 'E'; } } Als erstes mal das for wegnehmen und die Bedingung mitnehmen... while(iSchleife < iZaehler) { if (sZeile[iSchleife] == 'e') { sZeile[iSchleife] = 'E'; } } Dann noch die das inkrementieren von iSchleife reinbasteln: while(iSchleife++ < iZaehler) { if (sZeile[iSchleife] == 'e') { sZeile[iSchleife] = 'E'; } } Und dann müßte das klappen. Kann das grad nicht testen, aber theoretisch sollte das gehen. EDIT: Vorher iSchleife noch auf 0 setzen. Ädit2: Schau mal hier: Volkards C++-Kurs, for-Schleife
Psycho~zicke Geschrieben 22. November 2007 Autor Geschrieben 22. November 2007 Kann das hier leider auch nicht testen mein compiler mag mich bzw mein betriebssytem nicht sonderlich. Werd es morgen ma testen und dir bericht erstatten... Danke vielmals für deine hilfe und der echt guten Erklärung... Das hab nun selbst ich verstanden :valen
Gooose Geschrieben 23. November 2007 Geschrieben 23. November 2007 Die folgende FOR-Schleife #include<stdio.h> int main(void) { int i; for(i = 0;i <= 10; i++) { printf("%d",i); } } würde folgendermaßen aussehen while(i<=10) { printf("%d",i); i++ } Man muß auf die Abbruchbedinung achten, da du sonnst eine Endlosschleife bekommst.
Zakum Geschrieben 23. November 2007 Geschrieben 23. November 2007 Hmm, mich würde ehrlich interesieren, wozu du eigentlich die beiden Zyklen tauschen willst? Gibts da nen speziellen Grund? Den eigentlich ist das doch nur l Arbeit ohne erkennbaren Lohn!
Cadpax Geschrieben 23. November 2007 Geschrieben 23. November 2007 Den eigentlich ist das doch nur l Arbeit ohne erkennbaren Lohn! Ich vermute Schul-/Lehraufgabe, und da is der Sinn ganz einwandfrei gegeben. (Beschäftigen, Verstehen) -> Lernen
Zakum Geschrieben 24. November 2007 Geschrieben 24. November 2007 Naja, irgendwie klingt das logisch! Aber am Ende verleitet das die Schüler noch zu irgendwelche Programmierekszessen, einfach weil sie denken, dass ist ganz normal, Zählschleifen durch Kopfabweisende darzustellen. Sollte mMn eigentlich ganz klar von einander getrennt werden... Aber ich glaube ich schweife ab
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden