IF-Anweisung



  • Hallo, bin noch Anfänger in c++ und habe folgendes Problem,

    ich möchte das man im Programm eine Auswahl hat und anhand der Auswahl soll dann entsprechend der Code weitergeführt werden. Bsp.:

    cin >> auswahl;

    if (auswahl == 1)
    {
    cout << „Du hast die 1 gewählt“; //diese Anweisung ist immer anders
    // die nächsten Anweisung sind alle gleich
    a = b + c;
    d = e + f;
    }

    if (auswahl == 2)
    {
    cout << „Du hast die 2 gewählt“; //diese Anweisung ist immer anders
    // die nächsten Anweisung sind alle gleich
    a = b + c;
    d = e + f;
    }

    Mein Problem ist jetzt – wenn ich jetzt mehrere Auswahlmöglichkeiten habe z. B zehn, muss ich auch zehn mal die unterschtrichene Anweisung schreiben obwohl die alle gleich sind.
    Kann man das ganze nicht in eine IF-Anweisung packen?

    Ich hoffe ich habe mich verständlich Ausgedrückt.

    Danke schön
    Lukas



  • Wo ist denn das Problem?
    Wenn die Zeilen immer gleich sind, dann brauchst du sie doch gar nicht erst in die Bedingung zu schreiben!?

    if(auswahl == 1)    { 
        cout << "Du hast die 1 gewählt" << endl;
    }    else if(auswahl == 2)    {
        cout << "Du hast die 2 gewählt" << endl;
    }    else if(auswahl == 3)    {
        cout << "Du hast die 3 gewählt" << endl;
    }
    
    a = b + c; 
    d = e + f;
    


  • evtl auch switch:

    switch(auswahl)
    {
      case 1:
        cout << "die 1";
        break;
      case 2:
        cout << "die zwei";
        break;
      default:
        cout << "keins davon";
    }
    
    a = b + c; 
    d = e + f;
    


  • @betrug
    Das ganze würde ich dann aber in eine try-Anweisung einbetten, da nicht sichergestellt ist, dass es sich um einen Ganzzahlenausdruck handelt (währe beim if aber auch auf jeden Fall erforderlich)...

    Aber für einen Anfänger sind switch und try, glaube ich, noch etwas zu hoch 😃



  • Danke erstmal für die schnellen Antowrten. Ich habe aber einen kleinen Denkfehler gehabt - mein Problem sieht folgendermassen aus.

    int sache1 = 200; //das ist der Preis für die Sache
    int sache2 = 50; //das ist der Preis für die Sache
    int geld = 500; // Geld was zur Verfügung steht

    cout << "1. Sache1 kostet 200";
    cout << "2. Sache2 kostet 50";

    cin >> auswahl;

    if (auswahl == 1 && geld >= 200)
    {
    cout << „Du hast die sache1 gewählt“;
    geld = geld - sache1;
    }

    if (auswahl == 2 && geld >= 50)
    {
    cout << „Du hast die sache2 gewählt“;
    geld = geld - sache2;
    }

    Wenn ich jetzt z.b. zehn Sachen zum Angebot habe muß ich jetzt 10 mal die If Anweislung schreiben. Ich möchte, daß das ganze nur in eine Anweisung schreiben und das unterstrichene sich dann auf die jeweilige Auswahl bezieht.

    Ich hoffe ich habe es jetzt, sorry

    Danke
    Lukas



  • ...dann kommst du um eine for-Schleife und Arrays wahrscheinlich nicht herum...



  • Danke für die schnellen Antworten hier geht es echt schnell zur Sache. 😋

    Da muß ich mich mal in die arrays mal richtig einlesen - wollte nur wissen ob man es nur mit der IF Anweisung lösen kann.

    Wenn mann sich das alles selbst beibringt ist das garnicht so einfach (man hat ja ständig irgendwelche blöde Fragen und Gedanken).

    Bis dann
    Lukas


Anmelden zum Antworten