Java while循环不会在给定命令时停止(初学者程序员)

Java while循环不会在给定命令时停止(初学者程序员),java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我需要组成一个while循环,它基本上适合作为一个学生平均成绩计算器。 首先,它要求输入一个名称,如果该名称为Stop,程序将停止运行,并显示有多少学生通过了测试,有多少学生没有通过测试 但是,如果名字不是Stop,它会要求你提供4个等级,并计算这些等级的平均值。之后将确定学生是否通过考试 下面是我的代码: Scanner A = new Scanner(System.in); System.out.println("Vul de naam van de student in");

我需要组成一个while循环,它基本上适合作为一个学生平均成绩计算器。 首先,它要求输入一个名称,如果该名称为Stop,程序将停止运行,并显示有多少学生通过了测试,有多少学生没有通过测试

但是,如果名字不是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);
对不起,荷兰代码


问题是,当我键入“停止”时,程序不会终止,我知道我做错了什么,我就是无法安静地抓住它。

您错过了在while循环结束时重新分配值:

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

谢谢,成功了。早些时候尝试过,但将字符串naam=。。它给了我一个惊喜bug@F-H、 这不是一个bug,这是一个错误,因为您不能在同一块中多次使用相同的名称声明。nestDouble之后的nextLine至少不起作用。在OP示例中使用next可能是正确的选择。