Je viens d'apprendre à propos de la déclaration de commutation et je l'ai essayé. J'ai quelques questions à ce sujet. D'abord, je veux parler de quelque chose que j'ai essayé qui n'a pas fonctionné. Je ne suis pas sûr de savoir pourquoi cela ne fonctionne pas, surtout parce que cela ne provoque aucun message d'erreur dans la cocade de la console. Ici, il est:
p>
<p id="goonga"></p>
<script>
var currnc = ""
var rngab = Math.floor(Math.random() * 10) + 1;
switch (rngab) {
case "1":
currnc = "Yen";
break;
case "2":
currnc = "Dollar";
break;
case "3":
currnc = "Peso";
break;
case "4":
currnc = "Pound";
break;
case "5":
currnc = "Bolivar";
break;
case "6":
currnc = "Rupee";
break;
case "7":
currnc = "Euro";
break;
case "8":
currnc = "Bitcoin";
break;
case "9":
currnc = "Monopoly Money";
break;
case "10":
currnc = "No money for you!";
break;
default:
currnc = "You screwed up.";
}
document.getElementById("goonga").innerHTML = currnc;
</script>3 Réponses :
Vous obtenez des numéros de Utilisez également En savoir plus sur Exécutez le snippet ci-dessous pour le voir fonctionner. p> p> Math Floor CODE> Mais vous utilisez la chaîne comme case code> .TextContent code> au lieu d'utiliser .innerhtml code> Il n'est pas réincié d'utiliser innerhtml pour modifier le texte de div. p> .textContent code> ICI sur MDN P> <div id="goonga"></div>
Aussi, ici, le cas «par défaut» ne s'exécute jamais non plus? Alors, c'est quelque chose à considérer comme code mort et à être supprimé? Pardonne mon ignorance
@Santa ce n'est pas de l'espèce qui ne correspond à sa condition - 'oui' la valeur par défaut sera exécutée. C'est juste fonctionne comme un dernier sinon code> dans n'importe quel si code> condition.
Je l'ai eu, mais dans ce cas particulier, il tombe toujours sous 'affaire 1 à la case 10' non? Avons-nous encore de garder «défaut»?
@Santa dans ce n'est pas nécessaire mais pas de danger pour y garder une bonne pratique.
En réalité, le générateur aléatoire vous renvoie un entier et vous utilisez une chaîne au cas où. Donc, convertissez votre numéro en chaîne ou modifiez les cas en chiffres
p>
<p id="goonga"></p>
<script>
var currnc = ""
var rngab = Math.floor(Math.random() * 10) + 1;
switch (rngab.toString()){
case "1":
currnc = "Yen";
break;
case "2":
currnc = "Dollar";
break;
case "3":
currnc = "Peso";
break;
case "4":
currnc = "Pound";
break;
case "5":
currnc = "Bolivar";
break;
case "6":
currnc = "Rupee";
break;
case "7":
currnc = "Euro";
break;
case "8":
currnc = "Bitcoin";
break;
case "9":
currnc = "Monopoly Money";
break;
case "10":
currnc = "No money for you!";
break;
default:
currnc = "You screwed up.";
}
document.getElementById("goonga").innerHTML = currnc;
</script>Un étagère d'interrupteur évalue d'abord son expression. Il recherche ensuite la première clause de cas dont l'expression est évaluée à la même valeur que le résultat de l'expression d'entrée (à l'aide de la comparaison stricte, ===) et transfère le contrôle de cette clause, exécutant les relevés associés. (Si plusieurs cas correspondent à la valeur fournie, le premier cas qui correspond est sélectionné, même si les cas ne sont pas égaux les uns aux autres.)
RNGAB code> est un nombre ... Vos cas sont des chaînes. Supprimer les citations des cas numériques et travaillera probablement (ou trouvera un nouveau bogue)Avec ce nombre de cas, un objet hashmap serait plus propre et plus facile à maintenir
RNGAB code> Le numéro le modifie à la chaîne, cela fonctionnera.N'oubliez pas de voter à nouveau et acceptez ma réponse comme solution si cela résout votre problème? Merci -
La chose est que je l'ai déjà fait à un autre