- 締切済み
反復処理について
大学で勉強を始めたばかりの物です。 入力された5つの数値の合計を反復を用いて求めるプログラムを 作成したいのですが、 自分で考えても限界があり、どうすれば良いのかご指摘下さいm(__)m <pre><script type="text/javascript"> <!-- // 変数の宣言 var i, x, sum; // i:カウント,x:入力,sum:合計 // 入力・計算 sum = -Infinity; for (i = 1; i <= 5; i++) { x = Number(prompt("x" + "= ?")); if("x" + i + " = ?") sum= x ++ } // 出力 document.writeln("合計は"); document.writeln(sum + " です"); // --> </script></pre>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★大学で勉強を始めたばかりなんだ。 ・大学のどんな授業で JavaScript を教えているのか興味がわきます。 まぁ、私の興味はさて置き本題です。 反復(ループ)して合計を求めるには単純に変数に入力した値を加算すればよいのです。 そして、反復文は for、while 文で繰り返しますが、今回は for 文が適していますね。 それではサンプルを見ていきましょう。 サンプル: var data = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]; var sum = 0; ←初期化 for ( var i = 0 ; i < data.length ; i++ ){ sum += data[ i ]; ←加算 } document.write( 'sum=', sum, '<BR>' ); 解説: ・上記のサンプルは data テーブルに格納されている 1~10 までを合計して出力する単純なものです。 ここで重要なのが sum = 0; の初期化部分です。 最初にゼロにしておかないと sum という変数にどんな数が入るか分からないため NaN エラーに なってしまいます。注意! ・あと sum += data[ i ]; の部分で data[i] の値をどんどん加算しています。 さらに for 文の条件 i < data.length で繰り返しの条件判定を行っています。 以上を踏まえて今回の質問を考えると次のようになります。 本題: // 変数の宣言 var i, x, sum; // i:カウント,x:入力,sum:合計 // 入力・計算 sum = 0; ←初期化 for ( i = 0 ; i < 5 ; i++ ){ ←一般に 5 回ループする場合はこの記述です。 x = Number( prompt("x = ?") ); sum += x; ←加算 } // 出力 document.writeln( "合計は", sum, " です" ); その他: ・加算部分は回答者 No.1 さんのように1行で記述することも出来ます。 いちいち x 変数に代入しなくても Number() の戻り値をそのまま sum に加算できるのです。 ・あと document.writeln() 内の文字列は + 文字での連結のほかにカンマ文字での連結も 行えます。どちらでも結果は同じですのでお好みで。 ・以上。参考に。
- Rayderl
- ベストアンサー率83% (40/48)
promptで入力されたものの合計を表示したいのですよね。 だとしたら、まずsumの初期値はゼロでなくては変でしょう。 とにかく加算したいのですから、if文も不要。 さらにsumの加算部分の書き方が間違っています。 というわけで、入力・計算の部分を次のようにすれば合計が表示されます。 // 入力・計算 sum = 0; for (i = 1; i <= 5; i++) { x = Number(prompt("x = ?")); sum += x; }