Search code examples
javaloopsintellij-ideawhile-loop

Do while loop keeps going after one of the or conditions is false


This is the code I'm using:

 System.out.print("Naam van team 1: ");
    String team1 = input.nextLine();

    System.out.print("Naam van team 2: ");
    String team2 = input.nextLine();

    int[] puntenTeam1 = new int[6];
    int[] puntenTeam2 = new int[6];

    int gewonnenWedstrijdenTeam1 = 0;
    int gewonnenWedstrijdenTeam2 = 0;

    int i = 0;


    do{
            System.out.println("Uitslag wedstrijd " + (i+1));
            System.out.print("\tAantal punten " + team1 +  ": ");
            puntenTeam1[i] = input.nextInt();

            System.out.print("\tAantal punten " + team2 +  ": ");
            puntenTeam2[i] = input.nextInt();

            if (puntenTeam1[i] > puntenTeam2[i]){
                gewonnenWedstrijdenTeam1++;
            }else if (puntenTeam2[i] > puntenTeam1[i]){
                gewonnenWedstrijdenTeam2++;
            }
            i++;

    } while(gewonnenWedstrijdenTeam1 < 4 || gewonnenWedstrijdenTeam2 < 4);

If gewonnenWedstrijdenTeam2 or gewonnenWedstrijdenTeam1 is higher than 4 it keeps looping... But it says it's false in debugging. Why is that the case?


Solution

  • You need to change

    while(gewonnenWedstrijdenTeam1 < 4 || gewonnenWedstrijdenTeam2 < 4);

    to

    while(gewonnenWedstrijdenTeam1 < 4 && gewonnenWedstrijdenTeam2 < 4);

    or keeps looping if both are greater then 4 and a and loop keeps looping until one of the 2 goes above 4