Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.07.2012, 12:53

Einfache Frage zu If-Statement

Hallo,

da ich hauptsächlich mit Lua arbeite, habe ich Probleme, ein sicherlich einfaches C If-Statement zu verstehen.

Es handelt sich um eine solche Struktur:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
if( wert == 1)  
    wert = 123;
else if( wert == 2) 
    wert = 321;
else if( wert == 3) 
    wert = 0;
else    
    wert = funktionABC();


Worauf bezieht sich das "else"? Wann tritt "else" in Kraft?

Sorry für die sicherlich "dumme" Frage, allerdings denke ich, dass eine falsche Umsetzung dieses Statements ein Fehler in meinem Programm ist.

Gruß :)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

15.07.2012, 13:03

Wenn die obigen Bedingungen nicht wahr sind.
Es wird ja sequentiell von oben nach unten gearbeitet. Wenn das erste if falsch ist, dann wird das erste else if angeschaut, dann das zweite usw. Wenn nichts davon zutrifft, dann wird das else ausgeführt.
Das ist eigentlich genau gleich wie in Lua.

3

15.07.2012, 13:10

Ah ja, vielen Dank.

Wusste nicht, dass Lua If-Statements gleich behandelt.

Wenn aber mehr als ein Befehl nach dem If auszuführen ist, werden in C geschweifte Klammern benötigt, oder?
Denn die gibt's in Lua nicht, daher wahrscheinlich meine Verwirrung. :)

S4My

unregistriert

4

15.07.2012, 13:12

Wenn aber mehr als ein Befehl nach dem If auszuführen ist, werden in C geschweifte Klammern benötigt, oder?
Genau, mittels geschweifter Klammern werden immer Codeblöcke definiert. Das ist in C++ dann logischerweise auch so - aber das war ja nicht gefragt :D .

Mlg
S4My

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

16.07.2012, 08:53

RE: Einfache Frage zu If-Statement

C-/C++-Quelltext

1
2
3
4
5
6
7
8
if( wert == 1)  
    wert = 123;
else if( wert == 2) 
    wert = 321;
else if( wert == 3) 
    wert = 0;
else    
    wert = funktionABC();


die "lange Schreibweise" dafür wäre folgendes:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if( wert == 1)
{
    wert = 123;
}
else
{
    if( wert == 2)
    {
        wert = 321;
    }
    else
    {
        if( wert == 3)
        {
            wert = 0;
        }
        else
        {
            wert = funktionABC();
        }
    }
}

allerdings wird ein auf ein else folgendes if nicht in einen eigenen Block gesetzt, wenn dies die einzige Anweisung wäre

wenn geschweifte Klammern verwendet werden, dann besteht kein Zwang zu einer bestimmten Formatierungsart
die eben von mir verwendete ist wohl eher selten, ich wollte aber die Klammernpaare dadurch hervorheben

es gibt zwar die Möglichkeit, bei einer einzigen Anweisung die geschweiften Klammern weg zu lassen, ich persönlich würde aber eher davon abraten
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

16.07.2012, 08:56

switch(wert)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige