goto problem



  • Egal welche Zahl ich auch drücke der geht immer nach test: hin
    aber der soll da nur hin gehen wenn ich die 1 drücke was mache ich da falsch ?

    #include <iostream>
    using namespace std;
    
    int main ()
    {
    int zahl,test;
    cout<<"geben sie eine zahl ein:  \n";
    cin>>zahl;
    
    if (zahl==1)
            {
            goto test;
            }
    
    test:
    {
    cout<<"funktioniert\n";
    }
    
    system("PAUSE");
    }
    


  • Wo soll er denn sonst landen? Wenn zahl ungleich 1 ist, überspringt das Programm den Block mit dem goto - und landet in der nächsten Zeile/Anweisung dahinter (und das ist die, die auch als Ziel des goto dient).

    PS: goto ist böse - wenn es geht, solltest du es vermeiden. (btw, was soll das eigentlich ergeben?)



  • Um Deinen kleinen Test tu berichtigen...

    #include <iostream> 
    using namespace std; 
    
    int main () 
    { 
    int zahl,test; 
    cout<<"geben sie eine zahl ein:  \n"; 
    cin>>zahl; 
    
    if (zahl==1) 
    { 
       goto test; 
    } 
    else
    {
       goto end;
    }
    test: 
    { 
    cout<<"funktioniert\n"; 
    }
    
    end:
    system("PAUSE"); 
    }
    


  • Das wird ja immer gruseliger...

    Wenn dann bitte gleich richtig (ohne goto):

    #include <iostream> 
    using namespace std; 
    
    void zahl_richtig()
        {
            cout << "funktioniert" << endl;
        }
    
    int main () 
        { 
            int zahl;
                // 'int test' wird hier nirgens verwendet!
            cout << "geben sie eine zahl ein:  " << endl; 
            cin >> zahl; 
    
            if (zahl==1) zahl_richtig();
    
            // Wenn es schon unbedingt sein muss, dass die Konsole blockiert
            //  dann les dir mal das Konsolen-FAQ durch und vermeide 'System'
        }
    


  • Geht sogar noch ohne Methode:

    #include <iostream>
    
    int main ()
    {
      int zahl = 0;
    
      std::cout << "geben sie eine zahl ein:  \n";
      cin >> zahl;
    
      if(zahl == 1)
      {
        std::cout << "funktioniert\n";
      }
    
      //Programm anhalten... siehe Post von bwbg
    }
    

    :xmas1:


Anmelden zum Antworten