[C/C++] Fragen wegen Idiotensicherer Schleife

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Preusse, 8. Dezember 2009 .

Schlagworte:
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 8. Dezember 2009
    Fragen wegen Idiotensicherer Schleife

    Guten Tag,

    ich habe hier jetzt eine Schleife von unserem Lehrer und hab dazu ne Frage, warum muss der Start wert außerhalb des erlaubten Bereiches sein (Zahlen=1111)?

    do
    {
    clrscr();
    cout<<"Bitte geben Sie die "<<Lauf<<". Zahl ein von -1000 bis +1000: ";
    Zahlen=1111;
    fflush (stdin);
    scanf ("%f",&Zahlen);
    } while (Zahlen < -1000 || Zahlen > 1000);
     

  2. Anzeige
    Heute: Deals & Sale mit stark reduzierten Angeboten finden.
  3. #2 8. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    while (Zahlen < -1000 || Zahlen > 1000);

    heisst ja das er solange die Bedingung "wahr" ist, die zahlen also ausserhalb dieses bereichs liegen, die Eingabe widerholt. d.h. sobald die Eingabe im Bereich ist bricht die Schleife ab! D.h. der Wert is Valide und kann weiter benutzt werden für was auch immer du ihn brauchst ;-)

    mfg
    Joker

    EDIT: Falls es nicht ganz klar wurde. der Start Wert muss natürlich ausserhalb dieses Bereichs liegen damit bei einem Eingabefehler o.ä. die schleife nicht mit einem Wert abbricht den man nciht selber eingegeben hat.
     
  4. #3 8. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    aber er definiert den wert innerhalb der schleife, was völlig sinnlos ist, weil er ja gleich wieder überschrieben wird.
     
  5. #4 8. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Achso vielen dank :] :thumbsup:
     
  6. #5 8. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Ja das dachte ich mir auch, wir geben ja danach direkt ein anderen Wert ein
     
  7. #6 8. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Zahlen=1111;

    Die Zeile kannst du doch rausnehmen.

    Und wieso nimmst du scanf und nicht cin? Hast doch darüber auch cout verwendet.
     
  8. #7 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Kommt drauf an... wird zahlen vorher schon ein Wert zugewiesen?
    Ansonsten solltest du Variablen direkt beim deklarieren einen Wert zuweisen.
    Sprich die Zeile einfach nach oben schieben wo zahlen deklariert wird..

    mfg
     
  9. #8 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    aber reinspringen tut er doch eh 1x in die schleife.
    und durch die eingabe kriegt die variable nen wert.

    oder bin ich grad völlig auf dem holzweg?
    muss zugeben, do-while noch nie benutzt zu haben.

    wenn man der variable eh vorher nen wert zuweist, kann man auch while nehmen.
     
  10. #9 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    und genau deswegen kannst du "Zahl=1111" weglassen, da der teil innerhalb von "do" min. einmal ausgeführt wird.
     
  11. #10 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Also wenn ich richtig sehe und gesagt wurde kann man Zahlen=1111; weg lassen.
    Die wird nicht gebraucht. Ist Möglich das die Variable Zahlen int ist und bei Borland it eine Variabel int, wenn nicht definiert wurde grösser als 1000.

    Code:
    void main() {
     int Zahlen;
    do {
     cout<<"zahl eingeben: ";
     cout<<Zahlen; // sieht man schon ein Wert der grösser als 1000 ist
     Zahlen=500; // macht kein sin, da gleich
     cin>>Zahlen;
     } while (Zahlen < -1000 || Zahlen > 1000);
    }
    
    @Mooshka die Schleife wird sofort aufgerufen da der Wert der Zahlen üer 1000 ist.
    Bitte korigiert mich wenn ich falsch liege.
     
  12. #11 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    das is genauso sinnfrei

    so isses richtig:
    Code:
    void main() {
    
    int Zahlen;
    do {
     cout<<"zahl eingeben: ";
     cin>>Zahlen;
     } while (Zahlen < -1000 || Zahlen > 1000);
    }
    oder so:
    Code:
    void main() {
     int Zahlen = 1001;
     while(Zahlen < -1000 || Zahlen > 1000) {
     cout<<"zahl eingeben: ";
     cin>>Zahlen;
     }
    }
     
  13. #12 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Murdoc: Fast richtig, nur dass void main() absolut falsch ist :p
     
  14. #13 9. Dezember 2009
  15. #14 9. Dezember 2009
    AW: Fragen wegen Idiotensicherer Schleife

    Dass das sinnfrei war ist mir schon bekannt. Nur wollte ich zeigen das es sinnfrei ist.
     

  16. Videos zum Thema
Die Seite wird geladen...