- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是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开发!
1条答案
按热度按时间huus2vyu1#
您错过了在while-loop结束时重新赋值: