C# Zähler erhöht sich nicht

AirForce

Lt. Junior Grade
Dabei seit
Okt. 2010
Beiträge
293
Schreibe ein Programm das eine Zufallszahl von 1 bis 7 errechnet. Habe es in eine schleife gepackt damit es 100 mal eine Zahl generiert werden soll. Ich will nur die Nummer 6 ausgeben und zählen wie viel mal die Nummer 6 vorkommt. Habe auch einen Zähler gemacht doch dieser erhöht sich nicht.

Code:
 class Program
    {
        static void Main(string[] args)
        {
            for(int i = 0; i < 100; i++)
            {
                Random rwd = new Random();
                int a = rwd.Next(1, 7);
                if (a == 6)
                {
                    int counter = 1;
                    Console.WriteLine("{0} : {1}" , counter, a);
                    counter++;
     
                }
            }
            Console.WriteLine("Exit");
            Console.ReadLine();
        }
    }
 

KeepXtreme

Lt. Commander
Dabei seit
Sep. 2008
Beiträge
1.341
counter ist eine lokale Variable in deiner Schleife/dem If (bin mir gerade nicht sicher, wie c# das handhabt), d.h. nach dem Ende der Schleife wird sie definitiv gelöscht. zieh die Deklaration vor die Schleife und es wird gehen ;)
 
Zuletzt bearbeitet:

Flederbär

Cadet 2nd Year
Dabei seit
Apr. 2015
Beiträge
17
Hallo,

einfacher - und auch mehr an mögliche Erweiterungen gedacht - fände ich die Verwendung eines Arrays mit sechs Werten. Hier muss dann auch in der for-Schleife kein if verwendet werden, da einfach immer die Zahl an der Stelle des geworfenen Ergebnisses erhöht wird.

Beachten muss man hier die Grenzen des Arrays bei Ein- und Ausgabe, da Zahlen von 1-6 möglich sind, aber nur Indizes von 0-5.
 
Top