js else?
ich habe auf einer website ein onclick event löse diese funktion aus es sollen zufällige antworten kommen es kommt aber immer nur die erste also die aus dem if block
function testbo(){
var min = 1;
var max = 2;
var x = (Math.random() * (max - min)) + min;
if (x > 1,5){
alert("Warum hast du geklickt?");
} else if (x < 1,5){
alert("Du hast geklickt...");
}
}
Danke Schonmal im voraus!
3 Antworten
Ersetze 1,5 (mit Komma) durch 1.5 (mit Punkt).
So wie du das im Moment dastehen hast, wird „x > 1,5“ als „x > 1“ und mit Komma abgetrennt dann „5“ interpretiert. Und „x > 1“ wird nur in dem sehr, sehr unwahrscheinlichen Fall falsch, wenn die bei „Math.random()“ generierte Zufallszahl gleich 0 ist.
Hi Hemo20,
in JavaScript wird das Dezimaltrennzeichen und Tausendertrennzeichen vertauscht also musst du das Komma mit Punkt austauschen. Ich habe aber eine kleinere Variante gebastelt:
let antwort1 = "Dies und das!"; let antwort2 = "Das und dies!";
let result = Math.random() < 0.5 ? answer1 : answer2;
console.log(result);
Viel Spass beim ausprobieren
Sicher schreibst du aus dem Kopf heraus immer nur funktionierenden Code.
Habe ich nie behauptet - wenn ich jedoch eine Variable "antwort1" anlege, nutze ich diese ;-)
Ja, weil halt 0 generiert werden müsste, damit der else-if-Block ausgelöst wird. Wenn er eine Zahl ab 1 generiert, ist die Zahl nach der Berechnung immer größer als 1,5.
Doch.
(0 * 1) + 1 = 1 --> ist kleiner
(1 * 1) + 1 = 2 --> ist größer
Aber liegt scheinbar an dem Komma.
Das Beispiel würde ich überarbeiten - aber die Fehler findest du sicherlich selbst :)