【最大10000ポイント】当たる!!質問投稿キャンペーン!

JavaScriptを学んでいます。初歩的な質問で大変申し訳ないのですが、どうしても自分で解決できずに困っています。
「1 ~ Nまでの整数の総和(1+2+3...+N)を求める関数を持つスクリプトを作成する」というのが目標なのですが、下記のようなスクリプトはinternet Explorerでは動作しません。MozillaFirefoxおよびOperaでは意図したとおり動作できることを確認しています。どこに誤りがあるのでしょうか?どなたかアドバイスをお願いいたします。

<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>kadai</title>
<script type="text/javascript">
<!--
function keisan(num1,num2){
return num1*num2/2;
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
var num1 = prompt("1~入力データまでの総和を計算します。","");
var num2 = num1++;
alert("1 ~ 入力データまでの総和は、" + keisan(num1,num2) + "です。");
//-->
</script>
</body>
</html>

このQ&Aに関連する最新のQ&A

A 回答 (3件)

<script type="text/javascript">


function keisan(num){
return (num+1)*num/2;
}
var num = parseInt(prompt("1~入力データまでの総和を計算します。",""));
alert("1 ~ 入力データまでの総和は、" + keisan(num) + "です。");
</script>

とりあえず明示的に数値としてみては?
また、引数はわざわざ2つ作る必要ないですね・・・
    • good
    • 0
この回答へのお礼

早速のアドバイス、本当にありがとうございます。

parseInt()を使うべきだったのですね。引数をわざわざ二つとっていたのは、parseInt()を使わずにnum1+1と記述すると、単なる文字列と数値の結合になってしまい、加算が正しくされなかったためでした。
やむを得ずnum2をnum1++と定義していましたが、正しい記述をお教えいただけてもやもやした頭の中も少しすっきりしました。
超初歩的な質問にもかかわらずご回答いただき、どうもありがとうございました。わからないことだらけですが、めげずに勉強を続けます。

お礼日時:2008/07/23 01:27

No2です。

スミマセン 細かいミスありました。
No2問題なく動作しますが、kotae=0; 関数内に入れて下さい。
でないと 総和(1+2+3...+N)を求める関数 でなくなってしまいます。
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございます。
アドバイスいただいた記述、早速自分でも試してみます。

お礼日時:2008/07/23 05:53

<html><head><script type="text/JavaScript">


n=3;
kotae=0;
function keisan(){
for(i=1;i<=n;i++){kotae=kotae+i;}
alert("1~"+n+"までの総和は、"+kotae+"です。");}
keisan();
</script></head><body></body></html>
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2008/07/23 20:24

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「ミリ秒」これの時間の単位が解りません。

スライドショー等のソフトによく使われている
「ミリ秒」これの時間の単位が解りません。
例えば3000ミリ秒、5000ミリ秒とは、
いったい何秒の事なんですか。
出来れば計算方法教えて頂けますか。

Aベストアンサー

3000ミリでしたら小数点を左に3つ動かすと、ミリが消えて「秒」になります。
マイクロは左に6つ、
ナノは左に9つ、
キロは右に3つ、
メガは右に6つ、
ギガは右に9つということになります。

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。


人気Q&Aランキング