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

freaky_phil1

Frischling

  • »freaky_phil1« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Graz, Österreich

Beruf: Schüler

  • Private Nachricht senden

1

12.07.2011, 18:18

else if und verschachtelte if-Bedingungen

Ich habe vor kurzem das Buch: "C++ Für Spieleprogrammierer" erworben.
Ist alles super erklärt bis auf die Nummer: " 3.5 else if und verschachtelte if-Bedingungen "
Ich habe es 10mal durchgelesen aber ich verstehe immer noch nicht was es mit else-if und if else und if in else auf sich hat....und schaffe deshalb auch nicht die Aufgabe 3.8 (wo auch noch irgendwie for-schleifen verschachtelt sind...)
.....ich verstehe jedes Kapitel einzeln total super und es is eigentlich auch toll erklärt aber wenn dann alles miteinander kombiniert verschachtelt oder sonst noch irgendwas wird steig ich immer aus :cursing: .....

BITTE UM HILFE!!!?????(


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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// C++ für Spieleprogrammierer
// Listing 3.3
// else if und verschachtelte if-Bedingungen
//
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
    // Variablen
    //
    int nSpieleranzahl;     // Anzahl der Spieler
    char chAuswahl;        // Menüauswahl

    // Anzahl der Mitspieler abfragen
    cout << "Wie viele Mitspieler: ";
    cin >> nSpieleranzahl;

    // Falsche Eingabe?
    if (nSpieleranzahl == 0)
    {
        cout << "Falsche Eingabe" << endl;
    }
    // Singleplayer?
    else if (nSpieleranzahl == 1)
    {
        cout << "Du spielst gegen den Computer" << endl;
    }
    // Multiplayer?
    else
    {
        cout << "Multiplayer-Spiel\n\n";
        cout << "(j)eder gegen jeden oder (t)eamspiel: ";
        cin >> chAuswahl;

        // Jeder gegen jeden?
        if (chAuswahl == 'j')
        {
            cout << "Jeder gegen jeden" << endl;
        }
        // Teamspiel?
        else if (chAuswahl == 't')
        {
            cout << "Teamspiel " << endl;
        }
        // Falsche Eingabe?
        else
        {
            cout << "Falsche Eingabe" << endl;
        }
    }

    return 0;
}

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

12.07.2011, 18:28

if überprüft ja etwas. Wenn die Bedingung wahr ist wird der Block ausgeführt. Falls nicht geht es weiter. Mit else if kannst du eine weitere Bedingung prüfen, was ja aber nur passiert wenn die vorher gegangene Bedingung nicht erfüllt war (also das if oder allenfalls ein anderes else if). Wenn gar keine Bedingung wahr war wird der else Block ausgeführt.

Und dort drin kannst du dann genau gleich wie sonst auch wieder Bedingungen prüfen.

Ist das alles klar oder was genau verstehst du daran nicht?
Wenn es am Englisch liegt:
if <-> wenn
else if <-> ansonsten wenn
else <-> ansonsten

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

3

12.07.2011, 18:30

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
 if (nSpieleranzahl == 0)
    {
        cout << "Falsche Eingabe" << endl;
    }
    // Singleplayer?
    else if (nSpieleranzahl == 1)
    {
        cout << "Du spielst gegen den Computer" << endl;
    }

ist das gleiche wie:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
 if (nSpieleranzahl == 0)
    {
        cout << "Falsche Eingabe" << endl;
    }
    // Singleplayer?
    else
    {
        if (nSpieleranzahl == 1)
        {
            cout << "Du spielst gegen den Computer" << endl;
        }
    }

Die Schreibweise else if ist aber kürzer und übersichtlicher.

Im Wesentlichen funktioniert das so:
if(x)
[...] // wenn x true ist
else
[...] // wenn x false ist
Du kannst jetzt natürlich beliebig viele Bedingungen verschachteln, um z.B. sowas zu bauen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
if(x)
{
    [...] // tu was
    if(y)
    {
        [...] // tu noch mehr, wenn auch y true ist
    }
}
else
    [...]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BurningWave« (12.07.2011, 18:36)


freaky_phil1

Frischling

  • »freaky_phil1« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Graz, Österreich

Beruf: Schüler

  • Private Nachricht senden

4

12.07.2011, 18:33

Danke an euch beiden ;]

@BurningWave
Mir kommt deine schreibweise aber wesentlich übersichtlicher vor....

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

5

12.07.2011, 18:37

Du wirst noch merken, dass sie das aber bei größeren Bedingungen nicht ist ;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

12.07.2011, 18:39

else if macht schon Sinn. Vor allem wenn du mehrere Bedingungen prüfen willst. z.B

C-/C++-Quelltext

1
2
3
4
if(...){}
else if(...){}
else if(...){}
else {}

wäre dann:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
if(...){}
else
{
  if(...){}
  else
  {
     if(...){}
     else
     {
     }
  }
}


Was ist da jetzt übersichtlicher? ;)

freaky_phil1

Frischling

  • »freaky_phil1« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Graz, Österreich

Beruf: Schüler

  • Private Nachricht senden

7

12.07.2011, 18:46

jaja...okey ;D geb mich geschlagen.....
also kann ich jetzt das Buch weiterlesen????

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

12.07.2011, 18:52

Wenn du es verstanden hast auf jeden Fall! Viel Spaß! :)
Gruß
S~W

freaky_phil1

Frischling

  • »freaky_phil1« ist der Autor dieses Themas

Beiträge: 7

Wohnort: Graz, Österreich

Beruf: Schüler

  • Private Nachricht senden

10

12.07.2011, 18:58

tschuldigung das ich nochmal störe aber beim Kapitel: Logische Operatoren kann man ja || für oder und && für und einsetzen...
aber was macht das für einen unterschied ..ist das selbe ergebniss...

Werbeanzeige