【问题标题】:Do while loop keeps going after one of the or conditions is false [closed]在或条件之一为假后,执行while循环继续进行[关闭]
【发布时间】:2021-12-20 16:52:41
【问题描述】:

这是我正在使用的代码:

 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-条件是true,即gewonnenWedstrijdenTeam1gewonnenWedstrijdenTeam1都是&lt; 4,就会执行do-while循环。如果我们想停止&gt;= 4,我们应该用&amp;&amp;替换||
  • 如果两个值都大于4,你的条件只是假
  • 你必须使用 && 而不是 ||这样,当任何一个值达到 4 或更高时,它都会中断循环。
  • 用你自己的话来说,你认为“或”是什么意思?

标签: java loops intellij-idea while-loop


【解决方案1】:

你需要改变

while(gewonnenWedstrijdenTeam1 &lt; 4 || gewonnenWedstrijdenTeam2 &lt; 4);

while(gewonnenWedstrijdenTeam1 &lt; 4 &amp;&amp; gewonnenWedstrijdenTeam2 &lt; 4);

如果两者都大于 4,则继续循环,并且 a and 循环继续循环,直到 2 之一超过 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 2021-08-02
    • 2015-07-26
    相关资源
    最近更新 更多