Felix Riesterer: Funktion definieren

Beitrag lesen

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:)