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

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

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

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

Q&A

解決済

2回答

839閲覧

JavaScript if文の問題

okushin

総合スコア13

JavaScript

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

0グッド

1クリップ

投稿2019/05/17 01:37

前提・実現したいこと

で0~2のランダムな数値を3つ取得し、「それぞれの数値」と「最も数値が大きい変数」の情報を表示したいです。
また「最も数値が大きい変数」が複数ある場合は複数表示したいです。
イメージ説明

###ソースコード

JavaScript

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="UTF-8"> 5 <title>if</title> 6</head> 7<body> 8 <script type="text/javascript"> 9 // 0~2のランダムの数字の取得 10 var rand1 = Math.floor(Math.random() * 3); 11 var rand2 = Math.floor(Math.random() * 3); 12 var rand3 = Math.floor(Math.random() * 3); 13 14 // 数値を出力 15 document.write('<p>rand1:' + rand1 + '</p>'); 16 document.write('<p>rand2:' + rand2 + '</p>'); 17 document.write('<p>rand3:' + rand3 + '</p>'); 18 19 20 //3つがすべて同じ値の場合 21 if (rand1 === rand2 && rand2 === rand3) { 22 document.write('<p>3つは同じ値です</p>'); 23 } 24 25 //rand1とrand2が同じ値の場合 26 if (rand1 === rand2) { 27 if (rand1 > rand3) { 28 document.write('<p>一番数値が大きいのはrand1とrand2です</p>'); 29 } else { 30 document.write('<p>一番値が大きいのはrand3です</p>'); 31 } 32 //rand1とrand3が同じ値の場合 33 } else if (rand1 === rand3) { 34 if (rand1 > rand2) { 35 document.write('<p>一番数値が大きいのはrand1とrand3です</p>'); 36 } else { 37 document.write('<p>一番数値が大きいのはrand2です</p>'); 38 } 39 //rand2とrand3が同じ値の場合 40 } else if (rand2 === rand3) { 41 if (rand2 > rand1) { 42 document.write('<p>一番数値が大きいのはrand2とrand3です</p>'); 43 } else { 44 document.write('<p>一番数値が大きいのはrand1です</p>'); 45 } 46 //rand1が一番値が大きい場合 47 } else if (rand1 > rand2 && rand1 > rand3) { 48 document.write('<p>一番数値が大きいのはrand1です</p>'); 49 //rand2が一番値が大きい場合 50 } else if (rand2 > rand1 && rand2 > rand3) { 51 document.write('<p>一番数値が大きいのはrand2です</p>'); 52 //rand3が一番値が大きい場合 53 } else if (rand3 > rand1 && rand3 > rand2) { 54 document.write('<p>一番値が大きいのはrand3です</p>'); 55 } 56 </script> 57</body> 58</html>

解決したいこと

rand1,rand2,rand3が同じ値になったとき「3つは同じ値です」と表示するのですが、「一番値が大きいのはrand3です」とも表示してしまします。
3つが同じ値のときは「3つは同じ値です」とだけ表示したいです、よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

「// rand1とrand2が同じ値の場合」の次の行がifで始まっていますが、そこをelse ifにすればよいのでは。

投稿2019/05/17 01:40

kei344

総合スコア69400

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

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

okushin

2019/05/17 01:42

解決出来ました、回答ありがとうございます。
guest

0

javascript

1const check=a=>{ 2 const b=a.map((x,y,z)=>x==Math.max(...z)?"rand"+(y+1):null).filter(x=>x!==null); 3 return (a.length==b.length)?(a.length+"個のデータは同じ値です"):("一番値が大きいのは"+b.join("と")+"です"); 4} 5console.log(check([1,1,1])); 6console.log(check([1,2,1])); 7console.log(check([0,2,2])); 8console.log(check([1,1,0,1,1])); 9console.log(check([1,1,1,1,1])); 10

投稿2019/05/17 01:57

編集2019/05/17 02:03
yambejp

総合スコア114784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問