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

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

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

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

JavaScript

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

配列

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

Q&A

解決済

1回答

501閲覧

JavaScript for文の配列について

Vortex666

総合スコア3

HTML5

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

JavaScript

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

配列

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

0グッド

0クリップ

投稿2021/07/14 15:22

編集2021/07/15 12:52

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)JavaScriptで2つの配列を用いて野菜の価格表を出力し、野菜の名前を入力するとその野菜の価格を出力するプログラムを作っています。
実際for文を使って解くのですが、途中から全く分からなくなってしまいました。

試したこと

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>野菜の値段</title> </head> <body> <script> var vegetable_name = ["トマト","人参","カボチャ","ホウレンソウ", "ナス","ジャガイモ","ピーマン","サツマイモ"]; var vegetable_price = ["250","120","450","300", "780","980","350","1280"]; var vegetable_size = 8;
var input = prompt("価値を調べたい野菜の名前を入力してください"); var outMsg; </script> </body>
</html>

実際僕はここまでできたのですが、それ以降よくわかりません。

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

・すべての野菜が正しく表示されることと、登録されていない野菜の場合も、「価格表に(入力した野菜)は登録されていません」と表示できるようにして欲しいです。
・JavaScriptを始めたばかりでまだ完全に理解しきれていない部分もあると思います。これからの勉強に生かせると思うので全コードを書いてくれるととても嬉しいです。何かすべて丸投げしているような感覚がありますが、よろしくお願いします。
・値段に関してなのですが、適当に決めた値なのであまり気にしないでください。

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

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

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

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

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

mather

2021/07/14 15:32

ご自身が懸念している通り、丸投げの質問です。 また、課題に関する質問は担当の先生に聞いてください。
BeatStar

2021/07/15 10:59

課題丸投げは良くないですよ。 確かにコードを見ればわかる人もいますが、そういう人はそもそも自分で考えることが出来る人たちです。 自分で実装できないなら他人のコードを読んでも理解できません。 丸暗記しようとして終わりです。 プログラミングは「こう書けばいい」ではありません。 自分で設計し、自分でコーディングし、自分でデバッグまでする。(できればテストも) そこまでやってプログラミングが出来ると言えるのです。
guest

回答1

0

ベストアンサー

・すべての野菜が正しく表示されることと、登録されていない野菜の場合も、「価格表に(入力した野菜)は登録されていません」と表示できるようにして欲しいです。

いや、自分でやりましょう。

つか、何がわからないのでしょうか?

人によって「わからない」の理由が違います。
100人いれば100通り……は言い過ぎでも、それぐらいはあります。
それを『わかんねーから聞いてんだろが!!!』的な感じで質問されてもね……

・JavaScriptを始めたばかりでまだ完全に理解しきれていない部分もあると思います。これからの勉強に生かせると思うので全コードを書いてくれるととても嬉しいです。何かすべて丸投げしているような感覚がありますが、よろしくお願いします。

明らかな丸投げ。それ以外ない。

つか、プログラミングは「こう書けばいい」でもないし、「書いて終わり」でもありません

デバッグやテストまで含みます。

このデバッグまででも、たかだか一括処理程度ですら1~2日は使います。

それを自分は努力せずに、他人が答えをくれるのが当たり前?

だったら白紙で出しましょう。

私も興味のない科目は白紙で出しました。

・値段に関してなのですが、適当に決めた値なのであまり気にしないでください。

それ自体はどーでもいいです。


[ヒント]

上記のままだと、暴言と取られかねないので、ちょっとヒントを出します。

ヒント: for文は「数直線」を意識しましょう

for文は「範囲」、while文は「条件」がカギです。

一応それぞれ逆でもいいですが、書きづらいか可読性が悪くなります。

なので範囲か条件なのかを意識しましょう。

for文の場合は"範囲"なので、数直線を意識するといいです。

たとえば

JavaScript

1for( i = 0; i < 10; i++ ){ 2 // なんらかの処理 3}

としたら、まずfor文の構文を考えます。

for( 初期設定; 条件式; 増減式 )...

で、「初期設定をして、条件式を満たしている間、増減式を繰り返しながら、対象処理をする」です。

なので、上記は

// 変数 i の初期値は 0 とし、 // i が 10 以下の間、 // インクリメント( +1 ) しながら // 以下の処理を繰り返す for( i = 0; i < 10; i++ ){ // なんらかの処理 }

ですね。

現実世界のノートかホワイトボードかなんかに数直線を書いてください。

そして、i の初期値は 0 なので、0 のところをマークしてください。
ただし、0 を含みます。

そして、i < 10 なので、「(0から)10まで」という意味と取れるので、
10を含まない状態で10の部分にもマークしてください。( i≦10 なら含むけど、i<10 なので )

そして、その個数を数えてみましょう。

i = 0 のとき, 1回
i = 1 のとき, 2回
i = 2 のとき, 3回
...
i = 9 のとき, 10回
i = 10 のとき…とやろうとしましたが、条件では「i < 10 」なので含まない。よって終了。

と考えると、10回繰り返すことになりますね。

だからあの書き方になるのです。

もし、

JavaScript

1for( i = 0; i <= 10; i++ ){ 2 // なんらかの処理 3}

のように、条件式が i≦10 であれば、10を含むので i = 10 のときも考える為 11回となります。

このように、数直線で考えるとわかりやすいですよ。


[さらにヒント]

私の過去回答 を参考にしてください。

投稿2021/07/16 01:38

BeatStar

総合スコア4962

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問