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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1620閲覧

JavaScript for文の配列

Vortex666

総合スコア3

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/07/14 16:47

編集2021/07/14 17:34

前提・実現したいこと

ついさっき質問をしましたが、完全に丸投げの質問をしてしまったので書き直します。
Java Scriptを勉強中です。

2つの果物を使って果物の価格表を作成し、果物の名前を入力するとその価格を出力するプログラムに取り組んでいて、下のようにプログラムを書いたのですが、「promptにどんなものを入力してもリンゴの値段は250円です。」としか表示されなくて困っています。実際合っているんじゃないかと思ったのですが全然うまくいきません。

説明が下手で申し訳ありません。
初心者に分かりやすく教えてくださる方いらっしゃいませんか?

実際に書いたコード

JavaScript

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>フルーツの値段</title> 6 </head> 7 <body> 8 <script> 9 var Fruits_name = ["リンゴ","オレンジ","ブドウ","バナナ", 10 "メロン","スイカ","キウイ","パイナップル"]; 11 var Fruits_price = ["250","120","450","300", 12 "780","980","350","1280"]; 13 var Fruits_size = 8; 14 15 var input = prompt("価値を調べたい果物の名前を入力してください"); 16 var outMsg; 17 18 var i; 19 outMsg = "価格表に" + input + "は登録されていません"; 20 21 for( i = 0 ; i <= Fruits_size ; i++ ){ 22 if( input = Fruits_name[ i ]){ 23 outMsg = Fruits_name[ i ] + "の値段は" + Fruits_price[ i ]+ "円です"; 24 break; 25 } 26 } 27 28 alert( outMsg ); 29 </script> 30 </body> 31</html>

補足

・今は、["リンゴ","オレンジ","ブドウ","バナナ","メロン","スイカ","キウイ","パイナップル"]と表にあるのですが、これら以外の果物をpromptで入力した際には、「価格表に登録されていません。」と表示してほしいです。
・出来れば、全コードを書いていただけると有り難いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

===のミスです。
初心者は良く(初心者じゃなくても時々)間違えるので注意してください。

Diff

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8" /> 5 <title>フルーツの値段</title> 6 </head> 7 8 <body> 9 <script> 10 var Fruits_name = ["リンゴ", "オレンジ", "ブドウ", "バナナ", "メロン", "スイカ", "キウイ", "パイナップル"]; 11 var Fruits_price = ["250", "120", "450", "300", "780", "980", "350", "1280"]; 12 var Fruits_size = 8; 13 14 15 var input = prompt("価値を調べたい果物の名前を入力してください"); 16 var outMsg; 17 18 var i; 19 outMsg = "価格表に" + input + "は登録されていません"; 20 console.log(input); 21 for (i = 0; i <= Fruits_size; i++) { 22- if ((input = Fruits_name[i])) { 23+ if ((input == Fruits_name[i])) { 24 outMsg = Fruits_name[i] + "の値段は" + Fruits_price[i] + "円です"; 25 break; 26 } 27 } 28 alert(outMsg); 29 </script> 30 </body> 31</html>

もう少し修正するなら

データはオブジェクトか配列でまとめてしまったほうが後々使いやすいです。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>フルーツの値段</title> </head> <body> <script> var fruitsArray = [{ name: 'リンゴ', price: '250' }, { name: 'オレンジ', price: '120' }, { name: 'ブドウ', price: '450' }, { name: 'バナナ', price: '300' }, { name: 'メロン', price: '780' }, { name: 'スイカ', price: '980' }, { name: 'キウイ', price: '350' }, { name: 'パイナップル', price: '1280' }] var input = prompt("価値を調べたい果物の名前を入力してください"); var outMsg; var i; outMsg = "価格表に" + input + "は登録されていません"; for (i = 0; i < fruitsArray.length; i++) { const fruits = fruitsArray[i] if ((input == fruits.name)) { outMsg = fruits.name + "の値段は" + fruits.price + "円です"; break; } } alert(outMsg); </script> </body> </html>

投稿2021/07/14 17:20

編集2021/07/14 18:06
k4a

総合スコア983

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

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

k4a

2021/07/14 17:20

それと、ソースコードは<code>ボタンを押すか```で囲むことでこの回答のように見やすい表示になります。次回から気をつけてください(出来れば今回の質問も編集しておいてください)
Vortex666

2021/07/14 17:39

編集してみました。初めてだったもので...アドバイス有難うございます。
Vortex666

2021/07/14 17:55

あと、大変恐れ入りますが、for文の部分がいまいちピンとこないので、解説していただけないでしょうか?
k4a

2021/07/14 17:57

fot文はVortex666さんが記述したままですが、解説とはどういうことでしょうか? あ、でもFruits_sizeの部分は直したほうが良さそうですね。
Vortex666

2021/07/14 18:05

有難うございます。最後に一つ、console.log(input); の部分は別の方法でかけたりしますか?
k4a

2021/07/14 18:08 編集

それは追加して消し忘れた文なのでなくて良いです。(そういう意味では無いですか?)
Vortex666

2021/07/14 18:12

本当にありがとうございます。今回のこの経験をもとに、始めたての未熟者ですが、これからも楽しく頑張っていきます。
k4a

2021/07/14 18:13

応援してます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問