Lieber Niels,
Warum muss oder sollte man den check=1 wieder auf check=0 setzen, kann man sowas auch weglassen oder ist es einfach nur besser?
Die Variablen "Check" wird hier als sogenanntes Flag eingesetzt, das im Prinzip "ja" oder "nein" speichert, also einen Bool'schen Wert (true/false).
Lass mich die Funktion einmal auskommentieren, damit es klarer wird:
function PrimzahlCheck (Zahl) {
// Nur Zahlen größer zwei testen
if (Zahl >= 2) {
/* als mögliche Teiler nur Zahlen bis zur Hälfte von "Zahl" benutzen,
da größere mögliche Teiler keinen Sinn haben. */
var Grenzzahl = Zahl / 2;
// Annahme: "Zahl" ist eine Primzahl.
var Check = 1;
// mögliche Teiler ausprobieren
for (var i = 2; i <= Grenzzahl; i++)
// Mit dem Modulo-Operator den Rest der Zahl bestimmen
if (Zahl % i == 0) {
// Kein Rest! Keine Primzahl!
alert(Zahl + " ist keine Primzahl, weil teilbar durch " + i);
Check = 0; // OK, Annahme widerrufen.
}
// Wie hat sich unsere Annahme bewährt?
if (Check)
alert(Zahl + " ist eine Primzahl!");
} else {
// "Zahl" war zu klein
alert("Bitte geben Sie eine natürliche Zahl größer als 1 ein!");
}
return (Check); // gibt entweder true oder false zurück
}
Ob man "Check" jetzt die Werte 0 und 1 oder false und true gibt, ist JavaScript egal. Es wertet den numerischen Wert 1 wie ein Bool'sches true, und ein numerisches 0 wie ein Bool'sches false. Daher habe ich die Zeile mit if (Check==1)
etwas verkürzt.
Ist das Ganze jetzt klarer geworden?
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)