0

codecademy で JavaScript を学んでいます。次のプログラムは、送信時にスタックしました。私はこれに慣れていないので、バグを見つけることができません。Aptana Studioをダウンロードしましたが、デバッグの方法がわかりません:(。コードをトレースする方法はありますか? よろしくお願いします。

var slaying = true;
var youHit = Math.random() > 0.5;
var damageThisRound = Math.floor(5 * Math.random());
var totalDamage = 0;

while (slaying) {
    if (youHit) {
        console.log("You hit the dragon.");
        totalDamage += damageThisRound;
        if (totalDamage >= 4) {
            console.log("You've stew the dragon!");
            slaying = false;
        } else {
            youHit = Math.random() > 0.5;
        }
    } else {
        console.log("The dragon defeated you.")
    }
}
4

5 に答える 5

2

私の理解のとおりです。else セクションで設定する必要があります。そうしないと、プログラムが無限ループslaying = falseに陥ります。

} else {
    slaying = false; //Added here - Breaks the while() condition
    console.log("The dragon defeated you.")
}

シンプルに、The dragon defeated you.殺しが止まったら。(しゃれを意図)

デバッグには、Chrome の組み込みDeveloper toolsまたはFirebugFirefox を使用します。どちらも、F12選択したブラウザでアクセスするために使用します。

于 2013-10-06T14:00:57.410 に答える
0
var slaying = true;
var youHit = Math.random() > 0.5;
var damageThisRound = Math.floor(5 * Math.random());
var totalDamage = 0;

while (slaying) {
    if (youHit) {
        console.log("You hit the dragon.");
        totalDamage += damageThisRound;
        if (totalDamage >= 4) {
        console.log("You've stew the dragon!");
            slaying = false;
        } else {
        youHit = Math.random() > 0.5;
        }
    } else {
        console.log("The dragon defeated you.");
        slaying=false;
    }
}

そうでない場合は、falseを殺すのを逃しました。そうしないと無限ループに陥ります。

于 2013-10-06T14:09:41.180 に答える
0

はい。Chrome を使用している場合は、組み込みの Dev Tools を使用できます。または (Firefox を使用している場合)、FireBug 拡張機能を使用できます。

于 2013-10-06T14:01:13.253 に答える
0
var slaying = true;
var youHit = Math.random() > 0.5;
var damageThisRound = Math.floor(5 * Math.random());
var totalDamage = 0;

while (slaying) {
    if (youHit) {
        console.log("You hit the dragon.");
        totalDamage += damageThisRound;
        if (totalDamage >= 4) {
        console.log("You've stew the dragon!");
            slaying = false;
        } else {
        youHit = Math.random() > 0.5;
        }
    } else {
        //add this line
        slaying = false;    
        console.log("The dragon defeated you.")
    }
}
于 2013-10-06T14:02:53.587 に答える