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

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

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

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

Q&A

解決済

1回答

190閲覧

if文において適切なconsole.logが実行されない。

mo__fumi

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2018/07/27 07:58

前提・実現したいこと

JavaScriptで簡単なクイズアプリを製作しています。
scoreに応じてif文で分岐されたconsole.logのコメントが出るようにしたいのですが、うまく行きません。

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

scoreが0でも1でも2でも3でも console.log('3点:すばらしい!'); が実行されてしまう。

該当のソースコード

JavaScript

1 2 let score = 0; 3 let score1 = 0; 4 let score2 = 0; 5 let score3 = 0; 6 7 function answerQuiz1(){ 8 const quiz_1 = document.getElementById('quiz-1'); 9 const value1 = quiz_1.answer.value; 10 11 switch (value1) { 12 case 'a': 13 score1 = 0; 14 console.log('不正解です。') 15 break; 16 case 'b': 17 score1 = 1; 18 console.log('正解です。') 19 break; 20 case 'c': 21 score1 = 0; 22 console.log('不正解です。') 23 break; 24 } 25 26 } 27 28 function answerQuiz2(){ 29 const quiz_2 = document.getElementById('quiz-2'); 30 const value2 = quiz_2.answer.value; 31 32 switch (value2) { 33 case 'a': 34 score2 = 1; 35 console.log('正解です。') 36 break; 37 case 'b': 38 score2 = 0; 39 console.log('不正解です。') 40 break; 41 case 'c': 42 score2 = 0; 43 console.log('不正解です。') 44 break; 45 } 46 47 } 48 49 function answerQuiz3(){ 50 const quiz_3 = document.getElementById('quiz-3'); 51 const value3 = quiz_3.answer.value; 52 53 switch (value3) { 54 case 'a': 55 score3 = 0; 56 console.log('不正解です。') 57 break; 58 case 'b': 59 score3 = 0; 60 console.log('不正解です。') 61 break; 62 case 'c': 63 score3 = 1; 64 console.log('正解です。') 65 break; 66 } 67 } 68 69 function showScore(){ 70 score = score1 + score2 + score3; 71 document.getElementById('score-message').innerHTML = score; 72 73 if (score = 3) { 74 console.log('3点:すばらしい!'); 75 } else if (score = 2) { 76 console.log('2点;おしい!'); 77 } else if (score = 1) { 78 console.log('1点;まあまあ'); 79 } else { 80 console.log('0点;残念'); 81 } 82 }

試したこと

scoreの計算方法を変えたりしましたが変化なし・・・どこをどういじればいいのかもわかりません;

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

JavaScript
HTML
CSS
ATOM

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

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

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

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

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

guest

回答1

0

ベストアンサー

if (score = 3)

if (score == 3)

他も同じく。
上の条件式だと、scoreという変数に3を代入して、そのscoreを評価します。
javascriptのif文は、0やnull,undefined,{}等の無いもの(いい表現ではないですが)以外はtrue扱いです。

投稿2018/07/27 08:00

編集2018/07/27 08:04
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mo__fumi

2018/07/27 08:09

ああ!!!そうでした、イコールはイコールではなかったですね・・・すっかりハマっておりました。 おかげで正常に作動いたしました。ありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問