在 or 条件之一为假后,while 循环会继续执行吗
Do while loop keeps going after one of the or conditions is false
这是我正在使用的代码:
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);
如果 gewonnenWedstrijdenTeam2 或 gewonnenWedstrijdenTeam1 高于 4,它会一直循环...但它说它在调试时是错误的。为什么会这样?
你需要改变
while(gewonnenWedstrijdenTeam1 < 4 || gewonnenWedstrijdenTeam2 < 4);
至
while(gewonnenWedstrijdenTeam1 < 4 && gewonnenWedstrijdenTeam2 < 4);
or 如果两者都大于 4 则继续循环并且 and 循环一直循环直到 2 中的一个超过 4
这是我正在使用的代码:
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);
如果 gewonnenWedstrijdenTeam2 或 gewonnenWedstrijdenTeam1 高于 4,它会一直循环...但它说它在调试时是错误的。为什么会这样?
你需要改变
while(gewonnenWedstrijdenTeam1 < 4 || gewonnenWedstrijdenTeam2 < 4);
至
while(gewonnenWedstrijdenTeam1 < 4 && gewonnenWedstrijdenTeam2 < 4);
or 如果两者都大于 4 则继续循环并且 and 循环一直循环直到 2 中的一个超过 4