Hauptinhalt
Programmierung
Kurs: Programmierung > Lerneinheit 1
Lektion 11: Logik und if-Anweisungen- if-Anweisungen
- Challenge: Der Flummi
- Mehr Mausinteraktion
- Challenge: Deine erste Zeichnen-App
- Boolesche Werte
- Challenge: Der Zahlentester
- Logische Operatoren
- Challenge: Dein erster Button
- Challenge: Der cleverere Button
- if/else - Teil 1
- Challenge: Die kesse Karteikarte
- if/else - Teil 2
- Wiederholung: Logik und if-Anweisungen
- Zufallszahlen
- Projekt: Der Magic 8-Ball
© 2023 Khan AcademyNutzungsbedingungenDatenschutzerklärungCookie-Meldung
Zufallszahlen
Lerne, wie du in ProcessingJS mit der Funktion random() Zufallszahlen erzeugen und deren Werte mit if-Bedingungen überprüfen kannst.
Wir haben unsere
if
-Bedingungen benutzt, um Werte über die Umgebung zu überprüfen, wie die aktuelle Mausposition des Benutzers und vorhersehbar zu reagieren.Aber was ist, wenn wir Unberechenbarkeit wollen, wenn wir wollen, dass unser Programm bei jedem Lauf anders handelt?
Der Zufall hilft uns!
Wir können zufällige Zahlen generieren und
if
und else if
verwenden, um das Verhalten unseres Programms basierend auf den zufälligen Werten zu ändern.Zum Beispiel:
var randNum = random(0, 10);
if (randNum < 5) {
text("Trick!", 200, 200);
} else {
text("Treat!", 200, 200);
}
Das Programm gibt die Hälfte der Zeit "Trick!" und die andere Hälfte "Treat!" aus.
So funktioniert es:
- Der Variable
randNum
wird eine Zufallszahl zugewiesen, die bei 0 beginnt und Zahlen bis 10 enthält. Zurückgegebene Werte können 0, 0.2, 3.3, 4, 5.5, 6.9, 8, 9 oder 9.99 sein, aber nicht 10 selbst. - Die Bedingung prüft, ob die zurückgegebene Zahl kleiner als 5 ist, und gibt in diesem Fall "Trick!" und andernfalls "Treat!' aus.
Manchmal ist es einfacher, mit ganzen Zahlen anstatt Fließkommazahlen zu arbeiten, so dass wir exakte Werte überprüfen können. Hier sind ein paar Funktionen, die Gleitkommazahlen in ganze Zahlen umwandeln:
Normalerweise wollen wir Zufallszahlen generieren, die relativ gleichmäßig ausgewählt werden. Wenn wir zum Beispiel eine Münze simulieren, dann erwarten wir eine gleiche Chance auf "Kopf" oder "Zahl".
Dieser Code erreicht dieses Ziel:
var randFlip = floor(random(0, 2));
if (randFlip === 0) {
text("Heads", 200, 200);
} else {
text("Tails", 200, 200);
}
Die Variable
randFlip
wird immer entweder 0 oder 1 sein, da sie floor()
für den Rückgabewert von random(0, 2)
aufruft. Um dir ein Gefühl dafür zu geben, warum das so ist, hier ist das Ergebnis des Aufrufs von
floor()
mit verschiedenen Werten von random(0, 2)
:random(0, 2) | floor(result) |
---|---|
0.0 | 0 |
0.217… | 0 |
0.542… | 0 |
0.973… | 0 |
1.0 | 1 |
1.332… | 1 |
1.589… | 1 |
1.999… | 1 |
Die Rückgabewerte von
random()
sind zufällig, daher sehen sie nicht unbedingt so gleichmäßig verteilt aus wie die Werte in dieser Tabelle. Wenn du den Code für das Münzwerfen nur 10 Mal ausführst, siehst du vielleicht eine Folge von "Kopf" oder "Zahl". Wenn du ihn jedoch tausende Male ausführst und mitzählst, wirst du in etwa 50% der Fälle "Kopf" und "Zahl" sehen. Als allgemeine Regel gilt: Wenn es unser Ziel ist, eine faire und gleichmäßige Verteilung von Integer-Werten zu erhalten, ist es am besten,
floor()
mit random()
zu verwenden. Die
random()
Funktion ist eine großartige Möglichkeit, deinen Programmen etwas mehr Abwechslung zu geben. Verwende sie jedoch vorsichtig: Finde den richtigen Zahlenbereich, entscheide, ob du die Zahlen runden musst und prüfe die Werte die herauskommen.Du hast die Chance, das im nächsten Projekt selbst auszuprobieren!
Willst du an der Diskussion teilnehmen?
Noch keine Beiträge.