質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

557閲覧

switch文で、case以降の処理内容を正常に動作させたいです。

atago_IT

総合スコア8

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/12/17 18:41

前提

JavaScriptで、変数xが10より小さい場合・10と等しい場合・10より大きい場合に、
コンソールにそれぞれメッセージを表示させるスクリプトを開発しています。

実現したいこと

  • xが10より小さい場合に、「xは10より小さい」と表示させたい。
  • xが10の場合に、「xは10」と表示させたい。

発生している問題・エラーメッセージ

console.log(x)の結果と「xは10より大きい」だけ表示されます。
「xは10より小さい」「xは10」は一度も示されません。

該当のソースコード

JavaScript

1const test = x => { 2 console.log(x); 3 while (x < 20) { 4 switch (x) { 5 case x < 10: 6 console.log("xは10より小さい"); 7 break; 8 case x === 10: 9 console.log("Xは10"); 10 break; 11 default: 12 console.log("xは10より大きい"); 13 break; 14 } 15 x += 1; 16 } 17}; 18test(0);

補足情報(FW/ツールのバージョンなど)

OS: Raspberry Pi OS
ブラウザ: Chromium

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

caseではなく、if~else文を使いましょう。

js

1while (x < 20) { 2 if(x < 10) { 3 console.log("xは10より小さい"); 4 } else if(x === 10) { 5 console.log("Xは10"); 6 } else { 7 console.log("xは10より大きい"); 8 } 9 x += 1; 10}

case文はただの比較です。MDNによると、式を評価し、その式の値が case 節と一致した場合に実行されると書いています。
質問者さんのコードをif文に置き換えた場合、以下のようになってしまいます。

js

1while (x < 20) { 2 if(x == (x < 10)) { 3 console.log("xは10より小さい"); 4 } else if(x == (x === 10)) { 5 console.log("Xは10"); 6 } else { 7 console.log("xは10より大きい"); 8 } 9 x += 1; 10}

投稿2022/12/17 18:59

編集2022/12/17 19:07
ypp

総合スコア66

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atago_IT

2022/12/17 19:15

if文で書き直します。ありがとうございました!
maisumakun

2022/12/17 23:27

いちおう、switch(true)と書けば(JavaScriptでは)case側に条件を書くことはできます…が、その書き方は賛否両論があるので積極的におすすめするものではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問