Variable Wert zuweisen in If-Anweisung



  • Hallo Leute,
    ich bin ein absoluter Anfänger was Cpp angeht und versuche mich grad an der Programmierung...

    Ich habe eine If Anweisung programmiert und in der IF-Bedigung einer Variablen einen Wert zugewisen. SOlbald ich das gemacht habe, bekomme ich den Fehler "Es wurde eine Anweisung erwartet". Wenn ich das J05 raushole scheint alles wieder fehlerfrei zu laufen. Ich weiß nicht woran das liegen kann.

    while (j<5){
    	if (Buchstabe == Wort[z][j])
    
    		cout<<"\n TRUE \n"<<Wort[z][j];
    	j=5;
    	else
    		cout<<"\n FALSE \n"<<Wort[z][j];
    
    	j++;
    	}
    


  • An den fehlenden {}

    if(Bedingung)
    {Anweisungen} 
    else
    {Anweisungen}
    


  • Wenn es nur eine Anweisung ist, können die Klammern weggelassen werden. Ich sehe an dem Code keinen Fehler, poste doch mal den Kontext dazu.



  • roflo schrieb:

    Ich sehe an dem Code keinen Fehler, poste doch mal den Kontext dazu.

    Der Code ist falsch weil das else so alleine in der Gegend rumsteht. Außerdem vermute ich stark, dass der TO die Zuweisung nach j entgegen der Einrückung eigentlich im if und else Zweig stehen haben will.



  • roflo schrieb:

    Wenn es nur eine Anweisung ist, können die Klammern weggelassen werden. Ich sehe an dem Code keinen Fehler, poste doch mal den Kontext dazu.

    Na dann spiel doch mal Compiler: Zu welchem if gehört das else?



  • Jap, Danke... mit den Klammern funktioniert es. Seltsam finde ich dann, dass der Code ohne der Anweisung "j=5" auch funktioniert, selbst wenn die Klammern fehlen...aber bis hierher vielen Dank!



  • roflo schrieb:

    Wenn es nur eine Anweisung ist, können die Klammern weggelassen werden.



  • SG1 schrieb:

    roflo schrieb:

    Wenn es nur eine Anweisung ist, können die Klammern weggelassen werden. Ich sehe an dem Code keinen Fehler, poste doch mal den Kontext dazu.

    Na dann spiel doch mal Compiler: Zu welchem if gehört das else?

    Ach na klar, glatt übersehen 🤡



  • pluxyy schrieb:

    Jap, Danke... mit den Klammern funktioniert es. Seltsam finde ich dann, dass der Code ohne der Anweisung "j=5" auch funktioniert, selbst wenn die Klammern fehlen...aber bis hierher vielen Dank!

    Ohne den Else-Zweig funktioniert es, da ein If-Zweig für sich alleine stehen darf.

    Dein Ausgangscode hatte quasi den folgenden Aufbau:

    if(Bedingung)
    {
        Anweisung
    }
    Anweisung2
    else
    {
        Anweisung3
    }
    

    Die 2. Anweisung steht also für sich allein und hat nichts mit dem Ergebnis der if-Abfrage zu tun. Danach kommt der else-Zweig der ebenfalls allein steht und ein else ohne if kann es nicht geben.


Log in to reply