// HINWEIS: Das Beispiel verwendet eine goto-Anweisung
// da bis jetzt noch keine Schleifen eingefuehrt wurden.
#include <print>
#include <cstdlib>
#include <ctime>

int main()
{
    // Anzahl der erzeugten Zufallszahlen
    constexpr auto MAXCOUNTER = 1000;

    // aktuelle Uhrzeit auslesen
    unsigned int actTime = static_cast<decltype(actTime)>(std::time(nullptr));
    // Zufallszahlen initialisieren
    std::srand(actTime);
    // Anzahl der erzeugten Zufallszahlen
    auto counter = 0;
    // Zaehler für gerade und gerade Zahlen
    auto even = 0, odd = 0;

    // Schleife
OnceAgain:
    // Zufallszahl generieren und
    // falls Bit 0 gesetzt ist die Zahl ungerade
    if (auto number = std::rand(); (number & 0x01) != 0)
        odd++;
    // sonst ist die Zahl gerade
    else
        even++;
    // Anzahl der erzeugten Zufallszahlen erhoehen
    counter++;
    // Wenn weniger als MAXCOUNTER Zahlen erzeugt,
    // dann weiter Zahl erzeugen
    if (counter < MAXCOUNTER)
        goto OnceAgain;

    // Ergebnis ausgeben
    std::println("Anzahl der geraden Zahlen: {}\n"
                      "Anzahl der ungeraden Zahlen: {}\n", even, odd);
}
