あなたの質問に「どのように私はそれを切り替えるように変換することができます」、あなたはCスタイルの比較とリターンを-1作る機能を実装することができます応答、0または1比較の結果として。
以下の例では、setInterval
を使用して複数の異なるケースをエミュレートしています。
これは例のためのものです。
function compareTo(a, b) {
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
}
function EvaluateAge() {
// Generate a random age between 10 and 40
var myAge = Math.floor((Math.random() * 30) + 10);
switch (compareTo(myAge, 18)) {
case -1:
console.log(myAge, " less than 18");
break;
case 0:
console.log(myAge, " equal to 18");
break;
case 1:
console.log(myAge, "more than 18");
break;
}
}
// Example only
setInterval(EvaluateAge, 1000);
もう一つの方法は、スイッチの状態でtrue
を使用するJS switch
能力を使用することです:
var myAge = 16;
switch (true) {
case myAge < 18:
console.log("less than 18");
break;
case myAge === 18:
console.log("equal to 18");
break;
case myAge > 18:
console.log("more than 18");
break;
}
しかし、そうでありませんこのような使い方を避けることは良い考えです。
実際には、あなたのif
はうまく見え、それをswitch
に変換する必要はありません。コードの可読性/保守性を向上させることはありません。
var myAge = parseFloat(prompt("Enter you age: "));
switch (true) {
case myAge < 18:
alert("You cant not vote at this " + myAge);
break;
case myAge > 18:
alert("Vote wisely, you are " + myAge + " years old!");
break;
default:
alert("Invalid age");
}
注意、あなたがの値をキャプチャされていないこと:あなたがif文の代わりに簡潔なのこのをしたいだろうが、あなたはとても好きなことができる理由
何myAge == 18' '場合は? –
@JonathonReinhartが言ったことに加えて、なぜこれをswitch文にしたいのですか?確かにこれに続く2つの道しかないのですか?訂正されたif文は私にとっては妥当と思われます。 – Steve
はい、私もそれを含めたいと思っていますが、ちょっと混乱します。助けてください –