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

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

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

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

Q&A

解決済

2回答

1113閲覧

stopwatchの結果を評価したい

beginner001

総合スコア29

JavaScript

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

0グッド

0クリップ

投稿2020/05/14 23:56

編集2020/05/15 01:46

javascript

1<html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>ストップウォッチ</title> 6 </head> 7 <body> 8 <div> 9 <h1>StopWatch</h1> 10 <h1 id="timerLabel">00:00:00</h1> 11 <input type="button"onclick="start()" value="START" id="startBtn"> 12 <input type="button"onclick="stop()" value="STOP"> 13 <input type="button"onclick="reset()" value="RESET"> 14 </div> 15 <div id="dsp"></div> 16 <script> 17 let status = 0; 18 let time = 0; 19 let startBtn = document.getElementById("startBtn"); 20 let timerLabel = document.getElementById('timerLabel'); 21 22 function start(){ 23 status = 1; 24 startBtn.disabled = true; 25 timer(); 26 } 27 28 function stop(){ 29 status = 0; 30 startBtn.disabled = false; 31 } 32 33 function reset(){ 34 status = 0; 35 time = 0; 36 timerLabel.innerHTML = '00:00:00'; 37 startBtn.disabled = false; 38 } 39 40function timer(){ 41 if (status == 1) { 42 setTimeout(function() { 43 time++; 44 // 分・秒・ミリ秒を計算 45 let min = Math.floor(time/100/60); 46 let sec = Math.floor(time/100); 47 let mSec = time % 100; 48 49if (min < 10)  min = "0" + min; 50 if (sec >= 60)  sec = sec % 60; 51 if (sec < 10)  sec = "0" + sec; 52 if (mSec < 10) mSec = "0" + mSec; 53 timerLabel.innerHTML = min + ":" + sec + ":" + mSec; 54 timer(); 55 }, 10); 56 } 57 } 58 59if(timerLabel=="00:10:00"; 60div.innerHTML="ぴったり"); 61if(timerLabel>"10:00:00"; 62div,innerHTML=="失格"); 63else 64div.innerHTML="惜しい!"; 65 </script> 66 </body> 67</html> 68 69 70

ご指摘いただいた点を直してみましたが、動作しません。
自分としてはstopwatchを押した結果によってで評価を下したいのですが。
Brackets以外に使いやすいエディターがありますか。

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

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

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

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

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

gentaro

2020/05/15 01:57

> ご指摘いただいた点を直してみましたが、動作しません。 直ってないじゃん。 ちゃんと回答読んでください。 > の部分でif文が間違ってます。((を閉じてない、無駄な;がついてる) if文でのインデントをちゃんとつけないからこういうミスをするんだと思いますけど。
kei344

2020/05/15 05:05

回答が付いた質問の編集は慎重に行ってください。質問文のコードについて回答にて指摘があった場合は「追記」し、「直したこと」がわかるようにしてください。後から見た人から見て、現在回答されておられる方の回答が「無いコードに対しての指摘」になり、意味がわからなくなります。
beginner001

2020/05/15 23:15

分かりました。すみません。
guest

回答2

0

文法チェックできるちゃんとしたエディタを使いましょう。

javascript

1if(timerLabel=="00:10:00";

javascript

1if(timerLabel>"10:00:00");

の部分でif文が間違ってます。((を閉じてない、無駄な;がついてる)

ついでに

html

1<div id="dsp"></dsp>

もおかしい(閉じタグのスペルミス)

投稿2020/05/15 00:02

編集2020/05/15 00:07
gentaro

総合スコア8949

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

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

beginner001

2020/05/15 01:42

すみませんでした。Bracketsを使ってやってみました。
beginner001

2020/05/16 02:10

VisualStudioCodeを入れました。
guest

0

ベストアンサー

こんにちは、
Visual Studio Codeなんかどうでしょうか?

HTML

1<html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8" /> 5 <title>ストップウォッチ</title> 6 </head> 7 <body> 8 <div> 9 <h1>StopWatch</h1> 10 <h1 id="timerLabel">00:00:00</h1> 11 <input type="button" onclick="start()" value="START" id="startBtn" /> 12 <input type="button" onclick="stop()" value="STOP" /> 13 <input type="button" onclick="reset()" value="RESET" /> 14 </div> 15 <div id="dsp"></div> 16 <script> 17 let status = 0; 18 let time = 0; 19 let startBtn = document.getElementById("startBtn"); 20 let timerLabel = document.getElementById("timerLabel"); 21 let div = document.getElementById("dsp"); 22 23 function start() { 24 status = 1; 25 startBtn.disabled = true; 26 div.innerHTML = ""; 27 timer(); 28 } 29 30 function stop() { 31 status = 0; 32 startBtn.disabled = false; 33 if (time == 1000) { 34 div.innerHTML = "ぴったり"; 35 } 36 if (timerLabel > 60000) { 37 div.innerHTML = "失格"; 38 } else { 39 div.innerHTML = "惜しい!"; 40 } 41 } 42 43 function reset() { 44 status = 0; 45 time = 0; 46 timerLabel.innerHTML = "00:00:00"; 47 div.innerHTML = ""; 48 startBtn.disabled = false; 49 } 50 51 function timer() { 52 if (status == 1) { 53 setTimeout(function () { 54 time++; 55 // 分・秒・ミリ秒を計算 56 let min = Math.floor(time / 100 / 60); 57 let sec = Math.floor(time / 100); 58 let mSec = time % 100; 59 60 if (min < 10) min = "0" + min; 61 if (sec >= 60) sec = sec % 60; 62 if (sec < 10) sec = "0" + sec; 63 if (mSec < 10) mSec = "0" + mSec; 64 timerLabel.innerHTML = min + ":" + sec + ":" + mSec; 65 timer(); 66 }, 10); 67 } 68 } 69 </script> 70 </body> 71 </html> 72</html>

投稿2020/05/15 15:04

fake_shibe

総合スコア806

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

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

beginner001

2020/05/16 02:09 編集

visualstudiocode入れてみました。使いやすいです。ありがとうございました。 ところでfunction stop()ですが、実行すると00:10:00を下回っても上回っても「惜しい!」とでます。 また、下記のようにするとどちらでも「失格」と表示されます。どこに問題があるのでしょうか。 function stop() { status = 0; startBtn.disabled = false; if (time == "00:10:00") { div.innerHTML = "ぴったり"; } if (timerLabel > "00:10:00") { div.innerHTML = "失格"; } else { div.innerHTML = "惜しい!"; } }
fake_shibe

2020/05/16 10:28

こんにちは、下の用な感じでカスタマイズできると思います。 function stop() { status = 0; startBtn.disabled = false; // 10秒ぴったしの場合 if (timerLabel.innerHTML == "00:10:00") { div.innerHTML = "ぴったり"; } // 10秒未満、9秒より上の場合 else if (timerLabel.innerHTML < "00:10:00" && timerLabel.innerHTML > "00:09:00") { div.innerHTML = "惜しい! ちょっと早い!"; } // 10秒より上、11秒未満の場合 else if (timerLabel.innerHTML > "00:10:00" && timerLabel.innerHTML < "00:11:00") { div.innerHTML = "惜しい! ちょっと遅い!"; } // 10分より上の場合 else if (timerLabel.innerHTML > "10:00:00") { div.innerHTML = "失格"; } // 上記に当てはまらない場合 else { div.innerHTML = "普通"; } }
beginner001

2020/05/17 01:52

こんな書き方ができるんですね。勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問