Also für meine cs-Klasse musste ich ein Programm schreiben. Lange Rede, kurzer Sinn, ich schicke es an einen Autograder, der Feedback gibt. Der Autograder gibt Hinweise, wenn wir nicht alle Tests bestehen. Einer der Hinweise war, dass mein Code anscheinend für einige Testfälle in eine Endlosschleife zu gehen schien, aber ich weiß nicht, wo dies in meinem Code möglicherweise passieren könnte. Kann mir jemand in die richtige Richtung zeigen, wo ich vielleicht falsch liege? Ich werde meinen Code unten liefern:Ich weiß nicht, wo die Endlosschleife
public class TwoLargest {
public static void main(String[] args){
double largest = Double.NEGATIVE_INFINITY;
double secondLargest = Double.NEGATIVE_INFINITY;
int numNums = 0;
System.out.print("Please enter a terminating value: ");
double termValue = IO.readDouble();
System.out.println("Please enter your list of numbers: ");
while(true){
double temp = IO.readDouble();
numNums++;
if((temp == termValue && numNums < 2) || temp == termValue && numNums == 2){
IO.reportBadInput();
numNums = 0;
System.out.println("Please try again: ");
continue;
}
if(temp == termValue){
break;
}
if (temp > largest) {
secondLargest = largest;
largest = temp;
}
else if (temp > secondLargest) {
secondLargest = temp;
}
}
IO.outputDoubleAnswer(largest);
IO.outputDoubleAnswer(secondLargest);
}
}
warum sollte ich den Endwert nicht sehen, ob ich == verwendet. Haben Sie bis jetzt == verwendet und sind keine Probleme aufgetreten? – warriors31
Rundungsfehler in Gleitkommazahldarstellungen. Der Link, den ich als Referenz angegeben habe, erklärt ein wenig mehr. –