2

基本的にボタンを押すたびにアラートボックスを表示するプログラムを作成しました。問題は、私の関数の1つがかなり奇妙に動作していて、その理由がわからないことです。この機能が機能しない場合もあれば、他の機能が担当しているというアラートの送信をプログラムが完全に停止する場合もあります。使用しようとしている構文に何か問題がありますか?私はたくさんのバリエーションを試しました...

この単純なことは機能します:

function popup(){
      alert(5+6);
};

これはしません:

function popup(){
            c = 0;
                if(c=0){
                    alert(5+6);
                }
};

これにより、プログラム全体が機能しなくなります。

    function popup(){
        x=0
        y=0
        while(x=0;x<array.length;x++)
            if(y>0){
                alert(5+6);
            }
            else(y=0){
                alert(1+2)
                y++
            }
    };
4

2 に答える 2

3

あなたはおそらく意味します

else if (y==0){

ではなく

else(y=0){

y=0yを0に設定し、以前のyの値に関係なく、常に0を返します。

while条件として1つのステートメントを取ります(参照を参照)。whileループは、おそらくx ++の結果をチェックしていたため、終了することはありませんでした。

おそらくforループが必要です。

値がテストされるループに入る直前にyを0に設定するのは、非常に奇妙です。yはそうあるべきだと思いますarray[x]

function popup(){
    for (x=0; x<array.length; x++) {
        var y = array[x]; // just a guess, but this seems reasonnable
        if (y>0){
            alert(5+6);
        } else if (y==0) {
            alert(1+2);
            y++;
        }
};

しかし、すべてを追加し、;コードを適切にフォーマット/インデントすることで、多くの頭痛の種を回避できる可能性があります。

Googleのjavascriptスタイルガイドラインに従うことをお勧めします。

于 2012-12-08T11:18:22.210 に答える
3

ここで for ループを実行したいと思います。

if (y=0) は、比較ではなく代入を行います。

else(y=0){ は「else if」である必要があります。「else if」は比較を行いますが、as - else の前の「if」句が false の場合は true になります。

配列が初期化されていないようですか?- または、これは以前に初期化されていますか?

これはあなたが望むものに近いと思いますか?:

function popup() {
    y = 0;
    for (var x = 0; x < array.length; x++) {
        if (y > 0) {
            alert(5 + 6);
        }
        else if (y == 0)
        {
            alert(1 + 2);
            y++;
        }
    }
}
于 2012-12-08T11:24:11.030 に答える