Dies ist mein Code:For-Schleife speichert keine Variablen?
<html>
<head>
<title>Temperature Information</title>
</head>
<body>
<script>
//declare variables
var BR = "<br />";
var ES = " ";
var counter;
var temp = [counter];
var max = 0;
var min = 0;
var tempTot;
var tempAve;
//loop
for (counter = 1; counter <= 5; counter++) {
tempTot = tempTot + temp[counter];
temp[counter] = prompt("Enter the temperature for noon on day #" + counter,ES);
temp[counter] = parseFloat(temp[counter]);
if (temp[counter] == temp[1]){
temp[counter] = max;
temp[counter] = min;
}else if (temp[counter + 1] > temp[counter] && temp[counter] != temp[1]){
temp[counter] = max;
}else if (temp[counter + 1] < temp[counter] && temp[counter] != temp[1]){
temp[counter] = min;
}
tempTot = tempTot + temp[counter];
}
tempAve = tempTot/4;
//display info
document.write("The average temperature is: " + tempAve + BR);
document.write("The maximum temperature is: " + max + BR);
document.write("The minimum temperature is: " + min + BR);
</script>
</body>
Es soll für 5 Tage Info für die Temperatur nehmen, die mittlere Anzeige, max und min. Alles scheint gut zu laufen, aber es zeigt nur die Ergebnisse mit einer Null an. Mache ich etwas falsch? Ich habe das Gefühl, dass ich zu viel darüber nachdenke.
Was 'var temp = [Zähler];' soll tun? – gsc
Es gibt viele Dinge, die mit Ihrem Code nicht stimmen. – MultiplyByZer0
Sie greifen auf Temperaturwerte zu, die Sie noch nicht ausgefüllt haben, über 'temp [counter + 1]'. Diese werden "undefiniert" sein, was zu "NaN" führt, wenn Sie es mit einer Zahl vergleichen. Vergleiche mit 'NaN' sind immer falsch. Darüber hinaus, obwohl es im obigen Code kein Problem verursacht, beginnen Array-Indizes bei 0, nicht bei 1. Ich empfehle, den Code im Debugger zu durchlaufen, der in Ihrem Browser eingebaut ist, zu beobachten, wie die Werte Ihrer verschiedenen Variablen sind in einem dunklen Raum die Lichter an, und es ist nicht etwas zu warten, bis später zu lernen. Anfänger brauchen Debugger. :-) –