Und zwar prüfe ich gerade bei einem zweidimensionalen Array ob vier selbe Zahlen ( hier Einsen) in einer Reihe sind. Dies habe ich mit dem gesamten Spielzug in eine while-Schleife gepackt, mit der Bedingung !vierInEinerReihe
if (spielbrettInt[0][0] == 1 && spielbrettInt[1][0] == 1 && spielbrettInt[2][0] == 1 && spielbrettInt[3][0] == 1) { vierInEinerReihe = true; cout << "Spieler 1 hat vier in einer Reihe" << endl; break; }
so bricht die Schleife ab. Nur um die anderen Stellen nicht alle einzeln in eine if-Bedingung zu packen, wollte ich dies in eine for-schleife tun. Nur bricht hier die while nicht ab, sondern läuft immer weiter. Das cout wird ausgegeben, weshalb die Bedingung eigentlich auch true gesetzt wurde. Kann mir jemand sagen warum das nicht funktioniert?
for (int i = 0; i < 5; i++) {
if (spielbrettInt[0][i] == 1 && spielbrettInt[1][i] == 1 && spielbrettInt[2][i] == 1 && spielbrettInt[3][i] == 1) { vierInEinerReihe = true; cout << "Spieler 1 hat vier in einer Reihe" << endl; break; }
Hallo, da Du die while-Schleife von der Du schreibst nicht gepostet hast, ist es ein bißchen geraten, aber bei dem zweiten Ausschnitt bricht das break nur die for-Schleife ab. Das heißt es müßte irgendwie in diese Richtung gehen:
C++:
for (int i = 0; i < 5; i++) { if (...) { vierInEinerReihe = true; break; } }
if (vierInEinerReihe){ break; }
Oder Du packst das vierInEinerReihe mit in die normale Abbruchbedingung der Schleife.