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

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

1

15.09.2006, 18:11

Funktion in einer while-Schleife nur einmal ausführen

In meinem momentanen Projekt gibt es eine (logischerweise) eine Main-Loop. In dieser befindet sich u.a. die Funktion X. Ich möchte nun, dass in der Funktion X eine andere Funktion Y aufgerufen wird. Diese Funktion Y soll allerdings nur beim ersten Durchlauf von X ausgeführt werden. Gibt es für so etwas spezielle Schlüsselworte/Makros oder wie kann man das umsetzen?

Phili

unregistriert

2

15.09.2006, 18:16

@spacegaier
mach doch einfach irgendwo ne bool-Variable, die beim ersten aufruf von Y auf 1 gesetzt wird. Wenn sie schon 1 ist, wird Y nicht mehr ausgeführt. Wenn du dass ganze noch igendwie schön verpackst(z.B. Variable und Funktion Y in eine Klasse), dann ist das auch nicht zu unübersichtlich...

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

3

15.09.2006, 18:43

Ja, so werd ich es auch machen. Wollte (bzw. will immer noch) nur wissen ob es nicht eine (noch) elegantere Methode gibt (was fertiges, also ein Makro oder eine Direktive...).

Anonymous

unregistriert

4

15.09.2006, 19:31

Immer diese komplizierten Abfragen mit if und co. Nee nee nee.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>

bool einmalige_funktion (void)
{
    std::cout << "hallo" << std::endl;

    return (true);
}

int main (void)
{
    for (unsigned long i=0; i<10; ++i)
    {
        static const bool xxx = einmalige_funktion ();

        std::cout << "blabla" << std::endl;
    }

    return 0;
}
Keine If-Abfrage und gut ist.

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

5

15.09.2006, 23:07

Danke, nix da. Des ist genial (logisch kommt von dir ;) ).

Anonymous

unregistriert

6

15.09.2006, 23:19

Zitat von »"spacegaier"«

Danke, nix da. Des ist genial (logisch kommt von dir ;) ).


Öhm nur mal so nebenbei, das sind C++ Grundlagen, das sollte eigentlich
fast jeder hier wissen, auch du...

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

7

15.09.2006, 23:42

Ich bin aber nicht drauf gekommen und find des genial das so zu lösen.
Ich hätte es nämlich über if-Abfragen gemacht (Phili ja auch).

Was hat das mit Grundlage zu tun?

Anonymous

unregistriert

8

15.09.2006, 23:43

static gehört zu grundlagen ;)

Anonymous

unregistriert

9

15.09.2006, 23:46

Und wenn man weiß, wie static funktioniert, was man sollte, dann ist so
eine Lösung überhaupt kein Problem. Nur mal so, hab es auch so in
meinem Tic Tac Toe Game gelöst und ich sehe da keine Anzeichen von
Genialität.

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

10

15.09.2006, 23:49

Mal wieder was zum Thema Grundlagen usw.
Da meine Für Dummies Bücher eher erklärungen für Programme sind, wollte ich mal fragen welches Buch am besten alle C++ Syntaxe erklärt?
Ich meine wirklich alle!!!
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Werbeanzeige