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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

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

Q&A

解決済

3回答

565閲覧

JavaScriptの条件式がうまく実行されません。

kenchaan

総合スコア10

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

JavaScript

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

0グッド

1クリップ

投稿2019/12/29 05:18

イメージ説明

前提・実現したいこと

変数に10を代入したら『明日の天気晴れです』とうまく表示されるのですが、写真のように、曇り、雨が表示されなくなります。

どなたかわかる方がいらっしゃいましたらよろしくお願い致します。

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

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

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

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

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

m.ts10806

2019/12/29 05:31

コードは画像で提示されてもこちらで正しく確認できないのでテキストベースでマークダウンにてご提示ください
kenchaan

2019/12/29 08:53

お二方、重要なことを教えていただきありがとうございます。次からはそうします。
guest

回答3

0

ベストアンサー

変数名の確認

JavaScript

1var parcent = 30; 2 3if (parcent < 20) { 4 var weather = '晴れ'; 5} else if (parsent < 60) { 6 var weather = '曇り'; 7} else { 8 var weathr = '雨'; 9} 10 11document.write("明日の天気は" + weather + "です");

変数名 parcentparsent と入力ミスしているからです。
ブラウザのコンソールを確認すれば、ReferenceErrorで停止していることが分かります。

ReferenceError: parsent is not defined

変数に10を代入したら『明日の天気晴れです』とうまく表示されるのですが、写真のように、曇り、雨が表示されなくなります。

「雨」の場合の変数名も weathr とあり、こちらは実行が停止することはありませんが、期待通りに動作しないでしょう。

再発防止策

今後の対策として、正常動作したコードは別にとっておき、改修するコードは別ファイルにして比較する事をお勧めします。
今回、kenchaan さんは var parcent = 30 の代入値だけを書き換えたように認識されていますが、実際には他のコードも書き変わっていました。

そして、正常動作するコードの複製は目で見て手打ちではなく、コピー&ペーストが基本です。

質問する際にもコードを画像ではなく、テキストで書くようにして下さい。
今回、私は画像を見てコードを手打ちしましたが、それも入力ミスするリスクがあるので、確認と入力にはかなり気を遣いました。
もし、私の回答に画像のコードがあったなら、質問者は確認にコストをかけて、入力ミスのリスクを負うことになります。

Re: kenchaan さん

投稿2019/12/29 06:26

編集2019/12/29 06:38
think49

総合スコア18166

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

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

kenchaan

2019/12/29 08:54

本当に丁寧にご回答いただきありがとうございます。本当に助かりました。ベストアンサーにさせていただきます。
guest

0

これで如何でしょうか?

html

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 <title>降水確率</title> 7 </head> 8 <body> 9 <h1>降水確率</h1> 10 <script> 11 var percent = 60; 12 var weather; 13 14 if (percent < 20) { 15 weather = "晴れ"; 16 } else if (percent < 60) { 17 weather = "曇り"; 18 } else { 19 weather = "雨"; 20 } 21 document.write("明日の天気は" + weather + "です。"); 22 </script> 23 </body> 24</html>

画像
イメージ説明

投稿2019/12/29 05:54

編集2019/12/29 07:08
hiroo_mokumoku

総合スコア128

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

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

think49

2019/12/29 06:42

質問の本題ではありませんが…。 varなしの暗黙のグローバル変数宣言は、Strict Modeで動作せず、変数宣言コードの検索を困難にする為、お勧めしません。
think49

2019/12/29 08:01

修正を確認しました。 念の為、いっておきますが、低評価は私ではありません。
kenchaan

2019/12/29 08:59

お二方とても勉強になりました。ありがとうございます。 hiroo_mokumokuさんご丁寧にありがとうございます。助かります。その方法も試してみます。
guest

0

(誤答のため撤回します)

投稿2019/12/29 05:36

編集2019/12/29 06:30
shiracamus

総合スコア5406

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

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

kenchaan

2019/12/29 08:55

はい、ありがとうございます????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問