java 即使用户输入正确,While-loop也不会停止[关闭]

v09wglhw  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(142)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
四年前关闭了。
这篇文章是昨天编辑并提交审查的。
Improve this question
我需要编写一个while循环,它基本上适合作为一个平均学生成绩计算器,首先,它要求一个名字,如果这个名字是"Stop"程序将停止运行,并显示有多少学生通过,有多少没有。
然而,如果名字不是"停止",它会问你4个分数,并计算这些分数的平均值。之后,它会确定学生是否通过。
下面是我的代码:

Scanner A = new Scanner(System.in);
    System.out.println("Vul de naam van de student in");
    String naam = A.next();
    int geslaagd = 0;
    int gezakt = 0;
    
    while (!naam.equalsIgnoreCase("stop")){
        
        System.out.println("Vul cijfer 1 in");
        double cijfer1 = A.nextDouble();
        System.out.println("Vul cijfer 2 in");
        double cijfer2 = A.nextDouble();
        System.out.println("Vul cijfer 3 in");
        double cijfer3 = A.nextDouble();
        System.out.println("Vul cijfer 4 in");
        double cijfer4 = A.nextDouble();
        double gem = ((cijfer1+cijfer2+cijfer3+cijfer4) / 4);
    
        if ((cijfer1 >=4.5) && (cijfer2 >=4.5) && (cijfer3 >=4.5) && (cijfer4 >=4.5) && (gem >=5.5)) {
        System.out.println("Gefeliciteerd "+naam+", je gemiddelde is = "+gem+"! GESLAAGD!!!");
        geslaagd++;
        }   
        else {
        System.out.println("Helaas "+naam+" je bent gezakt.");
        gezakt++;
        }
        System.out.println("Vul de volgende naam in");
        A.next();
    }
    if (naam.equalsIgnoreCase("stop")){
        System.out.println("Aantal geslaagden = " + geslaagd);
        System.out.println("Aantal gezakten = " + gezakt);

抱歉,用了荷兰语。
问题是,当我键入"停止",程序不会终止,我知道我做错了什么,我只是不能安静地抓住它。
看起来我输入了一个错误的输入来尝试停止程序。除此之外,在我的代码中有一个基本的错误,我应该把String naam = A.next();改为String naam = A.nextLine();,就像一个用户指出的那样。幸好我转向了web开发!

huus2vyu

huus2vyu1#

您错过了在while-loop结束时重新赋值:

System.out.println("Vul de volgende naam in");
    naam = A.nextLine();/* changed */
}

相关问题