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

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

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

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

Q&A

解決済

3回答

1060閲覧

0~100のランダムな数値を3つ取得し「一番大きい数値」の情報を表示したい

mahihihihihihi

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2021/04/17 09:45

前提・実現したいこと

0~100のランダムな数値を3つ取得し「一番大きい数値」の情報を表示したいです。
「それぞれの数値」は表示されるが、一番大きい数値を表示することができません。

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

・「それぞれの数値」は表示されるが、「一番大きい数値」が表示されない。
・maxを使って出すことはできた。あえて書き出してみたいと思って試したらうまくいかない

該当のソースコード

javascript

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>random</title> <script> var rand1 = Math.floor(Math.random() * 101); var rand2 = Math.floor(Math.random() * 101); var rand3 = Math.floor(Math.random() * 101);
document.write('<p>rand1:' + rand1 + '</p>'); document.write('<p>rand2:' + rand2 + '</p>'); document.write('<p>rand3:' + rand3 + '</p>'); if (rand1 === rand2 && rand1=== rand3) { document.write('<p>一番大きい数値:' + rand1 + '</p>'); } else if (rand1 === rand2 > rand3 || rand1 === rand3 > rand2 || rand1 > rand2 === rand3) { document.write('<p>一番大きい数値:' + rand1 + '</p>'); } else if (rand2 > rand1 === rand3 || rand2 > rand1 > rand3 || rand2 > rand3 > rand1) { document.write('<p>一番大きい数値:' + rand2 + '</p>'); } else if (rand3 > rand1 > rand2 || rand3 > rand2 > rand1) { document.write('<p>一番大きい数値:' + rand3 + '</p>'); } </script>
</head> <body> </body> </html>

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

三つの数字で一番大きな物を求めたいときは、そのうち二つ取り出して比較し、大きかった方と残りの一つを比較し、大きかった方を選んでください。
理解できますか?

投稿2021/04/17 10:05

Zuishin

総合スコア28660

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

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

Zuishin

2021/04/17 11:27

ちょっと難しすぎたかな?
mahihihihihihi

2021/04/17 12:43

ちょっと難しいです…すみません…
Zuishin

2021/04/17 12:52

そうでしょうね。無理を言いました。コピペで動くと思われるコードをそのまま載せている人がいるので、何も考えずそれを使ってください。もし、趣味ではなくプログラミングを仕事にしようと思っているなら、早めに諦める方が時間を無駄にしないで済むと思います。
mahihihihihihi

2021/04/17 12:56

ご助言いただき、ありがとうございます。
guest

0

ベストアンサー

maxを使わないというなら、シンプルに次のようなので良いんじゃないでしょうか。

JavaScript

1if (rand2 <= rand1 && rand1 >= rand3) { 2document.write('<p>一番大きい数値:' + rand1 + '</p>'); 3} 4else if (rand1 <= rand2 && rand2 >= rand3) { 5document.write('<p>一番大きい数値:' + rand2 + '</p>'); 6} 7else if (rand1 <= rand3 && rand3 >= rand2) { 8document.write('<p>一番大きい数値:' + rand3 + '</p>'); 9}

質問に提示のコードでは
rand1>rand2>rand3の場合が抜けてると思いますし、他にも抜けてそうですが
そもそも
document.write(3>2>1);
とやってもfalseが出力されます。

JavaScript

1var maxv=rand1; 2if (maxv < rand2){ 3 maxv=rand2 4} 5if (maxv < rand3){ 6 maxv=rand3 7} 8document.write('<p>一番大きい数値:' + maxv + '</p>');

前述のコードは判定だけで最大値を出力するものでしたが
こちらは最大値を処理で求めてそれを出力という形になってます。

投稿2021/04/17 12:34

編集2021/04/17 13:16
xail2222

総合スコア1497

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

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

mahihihihihihi

2021/04/17 12:54

できました!!涙 ご丁寧にありがとうございます。 ご提示いただいたもの、シンプルで美しいですね…!
xail2222

2021/04/17 13:17 編集

まぁ、判定回数が2回から最大6回もあるのでmaxの計算としては非効率ですが この記述であれば内容は理解できるかと思います。 念のためあと一例追記しておきます。 あと、他の回答者の回答もコードにしてみると勉強になるかと思います。
guest

0

javascript

1const rand=Array(3).fill(null).map(()=>Math.floor(Math.random() * 101)); 2console.log(rand); 3console.log(Math.max(...rand));

投稿2021/04/17 11:54

yambejp

総合スコア114843

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

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

mahihihihihihi

2021/04/17 12:50

これは、jqueryを使われているのでしょうか? 不勉強ですみませんが教えていただけると嬉しいです。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問