JavaScriptのswitch文で文字列から計算機を実装する方法
はじめに
今回は、「"4 add 6"」のような形式の文字列を受け取り、対応する演算結果を返すJavaScript関数を作成する方法を解説します。
入力される文字列は、左右に2つの数字が配置され、その間に演算内容を表す英単語が挟まれた構造になっています。例えば、次のような文字列です。
"4 add 6" "6 divide 7" "23 modulo 8"
中央の単語には、次の5種類のいずれかが指定されます。
"add", "divide", "multiply", "modulo", "subtract"
それぞれ「加算」「除算」「乗算」「剰余」「減算」に対応します。私たちのタスクは、この演算子に基づいて正しい計算結果を返すことです。
switch文による実装例
それでは、実際のコードを見てみましょう。
const problem = "3 add 16";
const calculate = opr => {
const [num1, operation, num2] = opr.split(" ");
switch (operation) {
case "add":
return +num1 + +num2;
case "divide":
return +num1 / +num2;
case "subtract":
return +num1 - +num2;
case "multiply":
return +num1 * +num2;
case "modulo":
return +num1 % +num2;
default:
return 0;
}
}
console.log(calculate(problem));
コードの解説
この実装のポイントは以下の3点です。
- split()による文字列の分解:スペースを区切り文字として文字列を分割し、分割代入(デストラクチャリング)を利用して num1、operation、num2 の3つの変数に一度に格納しています。
- 単項プラス(+)による数値変換:「+num1」のように先頭にプラスを付けることで、文字列を簡潔かつ高速に数値型へ変換できます。
- switch文による分岐処理:中央の演算子文字列に応じて適切な計算へ分岐させます。どのcaseにも一致しない場合は、default句として 0 を返すようにしています。
出力結果
コンソールへの出力は以下のようになります。
19
入力は「3 add 16」なので、3 + 16 = 19 となり、意図した通りの結果が得られていることが確認できます。このように、switch文とsplit()を組み合わせれば、シンプルな文字列ベースの電卓機能をわずかなコードで実現できます。
-
JavaScriptで文字列を真偽値(Boolean)に変換する方法
JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style> body { font-family: &
-
JavaScriptのswitchステートメント内でreturnを使う方法|サンプルコード付きで解説
switchステートメント内でreturnステートメントは使えるのか?結論から言うと、switchステートメントが関数の中にある場合は、returnステートメントを含めることができます。returnが実行されると、その時点で関数の処理が終了し、switchステートメントで指定された値が呼び出し元へ返されます。そのため、switchステートメントより後ろに記述したコードは実行されません。さらに、returnは関数自体を抜ける働きを持つため、各caseの末尾にbreakステートメントを記述する必要がない点も見逃せません。breakの書き忘れによる意図しないフォールスルー(次のcaseへの処理の漏れ