Schleife wird übersprungen



  • Mein problem ist dass in diesen programm iergendwie immer die while schleife übersprugen wird und so nicht das programm wiederholt wird . Ich denke das liegt an der if schleife doch ich weiß nicht wie ich es richtig mache kann ...

    int main()
    {
    int variablen bla bla bla;
    
    do{
    cout << "1. bla bla bla bla ";
    cout << "2. nblaadfks ";
    cout << "3. asdjkwnain ";
    cin  >> auswahl;
    if (auswahl >= 3)
       {
       cout << "Ungueltige eingabe"
       break;
       }
    switch(auswahl)
      {
      case 1: cout << " baskfmnwk ";
              break;
      case 2: cout << " jasf";
              break;
      case 3: cout << " wjafan";
              break;
      }
      cout << " Nochmal (j/n)" << endl;
      cin  >> i;
      }
      while ( i == n);
      cin.get();cin.get()
      return 0;
    return 0;
    }
    


  • Hallo

    Deine Schleife wird solange durchlaufen solange die Inhalte der Variablen i und n gleich sind. Da aber n sonst nicht bei dir im Codeauszug auftaucht, können wir dazu nicht viel sagen.
    Ich vermute aber du willst das so

    while ( i != 'n');
    

    bis bald
    akari



  • char i;
    
    i=getch()
    

    nur ein Tastendruck(benötigt conio.h)

    while(i=='j')
    

    solange j gedrückt wird

    oder

    while(i!='n')
    

    solange nicht 'n' gedrückt wurde



  • so hier hab ich ma ein beispiel programmiert
    immer wenn man sagt nochmal rechnen schließt sich das programm was es eigentlich nicht sollte

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main()
    {
    char i;
    int eingabe;
    long double zahl1,zahl2;
    
    do{
    system("CLS");    
    cout << "\n\t <--------Taschenrechner------->"<< endl;
    cout << "\n\t 1.Addieren                   <1> ";
    cout << "\n\t 2.Subtrahieren               <2> " ;
    cout << "\n\t 3.Multiplizieren             <3> ";
    cout << "\n\t 4.Dividieren                 <4> ";
    cout << "\n\t 5.Potenz                     <5> ";
    cout << "\n\t 6.Wurzel                     <6> " << endl;
    cout << "\n\t <---Copyright-by-C4ponnEEee--->";
    cout << endl;
    cout << "\n\t Auswahl : ";
    cin  >> eingabe;
    
    switch(eingabe)
      {
      case 1: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Addition : ";
              cout << zahl1 << "+" << zahl2 << " = " << zahl1+zahl2;
              break;
      case 2: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Subtraktion : ";
              cout << zahl1 << "-" << zahl2 << " = " << zahl1-zahl2;
              break;
      case 3: cout << cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Multiplikation : ";
              cout << zahl1 << "*" << zahl2 << "=" << zahl1*zahl2;
              break;
      case 4: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Division : ";
              cout << zahl1 << ":" << zahl2 << "=" << zahl1/zahl2;
              break;
    
      case 5: cout << "\n\t Geben sie eine Zahl ein : ";
              cin >> zahl1;
              cout << "\n\t " << zahl1 << " zum quadrat ist = " << zahl1*zahl1 << endl;
              break;
      case 6: cout << "\n\t Geben sie eine Zahl ein : ";
              cin >> zahl1;
              cout << "\n\t Die Wurzel von " << zahl1 <<  " = " << sqrt(zahl1) << endl;
              break;
    
      default: cout << endl;
               cout <<"\n\t Ungueltige Eingabe" << endl;
               break;
       }       
              cout << endl;
              cout << endl;
              cout << "\n\t Wollen Sie nochmal Rechnen? (j/n)" << endl;
              cout << "\n\t Antwort: ";
              cin >> i;
              } 
              while (i == 'j');
              cin.get(); cin.get();
              return 0;
    
    return 0;
    }
    


  • Ich hab deinen Code bei mir kompiliert und ausführen lassen und wenn man j eingibt, schließt sich das Programm nicht. Vielleicht schreibst du J immer groß...

    Felix



  • Phoemuex schrieb:

    Ich hab deinen Code bei mir kompiliert und ausführen lassen und wenn man j eingibt, schließt sich das Programm nicht. Vielleicht schreibst du J immer groß...

    Felix

    genauso ist es auch bei mir ...



  • ach jetz hab ich was vergessen ^^

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main()
    {
    char i;
    int eingabe;
    long double zahl1,zahl2;
    
    do{
    system("CLS");    
    cout << "\n\t <--------Taschenrechner------->"<< endl;
    cout << "\n\t 1.Addieren                   <1> ";
    cout << "\n\t 2.Subtrahieren               <2> " ;
    cout << "\n\t 3.Multiplizieren             <3> ";
    cout << "\n\t 4.Dividieren                 <4> ";
    cout << "\n\t 5.Potenz                     <5> ";
    cout << "\n\t 6.Wurzel                     <6> " << endl;
    cout << "\n\t <---Copyright-by-C4ponnEEee--->";
    cout << endl;
    cout << "\n\t Auswahl : ";
    cin  >> eingabe;
    if (eingabel > 6)  // ab hier 
              {
              cout << "\n\t Ungueltige eingabe";  
              }// bis hier  ist der fehler
    switch(eingabe)
      {
      case 1: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Addition : ";
              cout << zahl1 << "+" << zahl2 << " = " << zahl1+zahl2;
              break;
      case 2: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Subtraktion : ";
              cout << zahl1 << "-" << zahl2 << " = " << zahl1-zahl2;
              break;
      case 3: cout << cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Multiplikation : ";
              cout << zahl1 << "*" << zahl2 << "=" << zahl1*zahl2;
              break;
      case 4: cout << "\n\t Geben sie Zahl eins ein : ";
              cin  >> zahl1;
              cout << "\n\t Geben sie Zahl zwei ein : ";
              cin  >> zahl2;
              cout << "\n\t Division : ";
              cout << zahl1 << ":" << zahl2 << "=" << zahl1/zahl2;
              break;
    
      case 5: cout << "\n\t Geben sie eine Zahl ein : ";
              cin >> zahl1;
              cout << "\n\t " << zahl1 << " zum quadrat ist = " << zahl1*zahl1 << endl;
              break;
      case 6: cout << "\n\t Geben sie eine Zahl ein : ";
              cin >> zahl1;
              cout << "\n\t Die Wurzel von " << zahl1 <<  " = " << sqrt(zahl1) << endl;
              break;
    
       }      
              cout << endl;
              cout << endl;
              cout << "\n\t Wollen Sie nochmal Rechnen? (j/n)" << endl;
              cout << "\n\t Antwort: ";
              cin >> i;
              }
              while (i == 'j');
              cin.get(); cin.get();
              return 0;
    
    return 0;
    }
    


  • cin  >> eingabe;
    if (eingabel > 6)
    

    vertippt beim Variablennamen? (du liest in eingabe ein und checkst dann eingabe1)



  • omg , hab ich komplett übersehen und ich war die ganze zeit am suchen wo der fehler liegen könnte , ...........................


Anmelden zum Antworten