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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

1088閲覧

ページの読み込みが終わりません。

otftrough

総合スコア476

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/10/27 10:29

どこが間違っているのかわかりません。
コンパイルエラーを表示してくれる無料ソフトでもあればいいのに。

javascript

1s = document.getElementById("sp"); 2n = new Array(); 3i = 0; 4a = 0; 5max = 10; 6while(i < max){ 7 n[i] = Math.floor(Math.random() * max); 8 while(a < n.length && i > 0){ 9 if(n[i] == n[a]){ 10 i--; 11 a = 0; 12 break; 13 } 14 a++; 15 } 16 i++; 17} 18while(i > 0){ 19 s.innerHTML += "<br>" + n[i]; 20 i --; 21}

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

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

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

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

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

guest

回答3

0

ベストアンサー

なにをしようとしているのか分からないので回答しにくいですが、i=1の時に内側のループ2周目でa=1に必ずなるので、if(n[i] == n[a])は必ず真となりますから、i--が実行されループを抜けてi++されてi=1になるので、外側が無限ループになっているのでは。

おそらく、「連続して同じ値を持たない配列」を作ろうとしているのかな、、と思いますので、while(a < n.length-1 && i > 0)とか書いてみてはどうですか。

投稿2015/10/27 12:10

Lhankor_Mhy

総合スコア36115

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

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

otftrough

2015/10/27 12:18

そのとおりでした。 普段、while文では配列の全ての要素を操作していたので、癖で(a < n.length)になってたようです。
guest

0

firefoxのプラグインであるfirebugを使うとブレークポイントの設置やそのタイミングでの変数の状態等が確認出来るので、手軽にjavascriptのデバッグ環境を整えるにはお勧めです。
参考URL

他のブラウザでも近い機能を持っているアドオンは存在するので、そのあたりは好みで。

投稿2015/10/27 11:07

tanat

総合スコア18713

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

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

otftrough

2015/10/27 11:14

ページの読み込みが永遠に終わらないのでデバッグできませんでした。
guest

0

すみません、自分はそんなに書けない人なので大したこと言えませんけど、気がついたことだけ……

while(i < max){ の行と、
while(a < n.length && i > 0){ の行の間に、
alert(i);
と記述して実行すると、ずーっと1 が表示されるんで、無限ループになっちゃってます。その辺りに何かあるのかもしれませんね。
がんばってください><b

投稿2015/10/27 11:55

nisihunabasi

総合スコア58

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問