Ich lerne gerade C#. Kann mir eine diese Frage beantworten der sich mit C# oder Programmieren auskennt?
Ihr seht ja auf Line 25 "count = 0". Wenn ich diese Line entferne, bekomme ich auf der Console keinen Output mehr.
Aber ich wundere mich warum diese Zeile überhaupt da sein muss, immerhin wurde int count = 0; bereits in line 13 initialisiert. Warum muss sie dann in 25 nochmal initialisiert werden?
4 Antworten
In der while-Schleife in Zeile 14-20 wird count solange increased bis count größer ist als der Wert von numOfPlayers. Da beide while-Schleifen dieselbe Bedingung haben um ausgeführt zu werden (das count < numOfPlayers ist) wird die untere while-Schleife nie ausgeführt sollte count den Wert von vorher beibehalten.
Nebenbei kann man statt der ersten while-Schleife eine for-Schleife nutzen und die letzte while-Schleife wird nie enden sollte numOfPlayers größer als count sein.
in der Zeile 13 initialisierst du die Variable count vom Type int, was bedeutet das du im Arbeitsspeicher nun 4 Bytes reserviert hast für diese Variable.
Das Gleich Zeichen ist ein Zuweisungsoperator, assignment operator auf Englisch, welches der Variable in der Zeile 13 den Wert 0 zuweist.
also mit der folgenden Schreibweise initialisierst eine Variable vom Typ int
int count;
mit dieser Schreibweise deklarierst du eine Variable:
count = 0;
und mit dieser Schreibweise initialisierst und deklarierst du eine Variable:
int count = 0;
In der Zeile 25 wird die Variable somit nicht ein zweites mal initialisierst sondern dieser wird der Wert 0 zugewiesen
Und wenn du die Zeile 25 löscht, dann hätte die Variable an der Stelle den Wert von von der Variable numOfPlayers, wegen der vorherigen While Schleifen, welche solange läuft solange, laut deinem Sourcecode, count kleiner numOfPlayers ist.
Und weil die Variablen gleich sind, ab den Zeitpunkt ab den du die Zeile 25 gelöscht hättest, wird die zweite While Schleife gar nicht erst ausgeführt
also mit der folgenden Schreibweise initialisierst eine Variable vom Typ int
...
mit dieser Schreibweise deklarierst du eine Variable:
...
Da hast du aber deklarieren und initialisieren miteinander verwechselt.
immerhin wurde int count = 0; bereits in line 13 initialisiert.
Ja. Und in Zeile 19 wird sie bei jedem Durchlauf der While-Schleife erhöht.
Und nun schaust du dir deine Bedingung für die zweite While-Schleife in Zeile 26 an und fragst dich, ob die Bedingung noch zutreffen kann, wenn du den Wert nicht wieder auf 0 zurück setzt.
Weil count auf Zeile 19 bei jedem Schleifendurchlauf um 1 erhöht wird.