Java while循环不会在给定命令时停止(初学者程序员)
我需要组成一个while循环,它基本上适合作为一个学生平均成绩计算器。 首先,它要求输入一个名称,如果该名称为Stop,程序将停止运行,并显示有多少学生通过了测试,有多少学生没有通过测试 但是,如果名字不是Stop,它会要求你提供4个等级,并计算这些等级的平均值。之后将确定学生是否通过考试 下面是我的代码: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");
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可能是正确的选择。