0

テスト サイト用に Javascript ランダム スローガン ジェネレーターを作成しましたが、何らかのバグがあり、その理由がよくわかりません。

<body onload="rndqu()">
    <div id="head"> <a href="index.html">Mira's place<a><br>
            <h2>&#8220;<span id="quote"></span>&#8221;</h2>
    </div>
</body>

そして、ここにJavascriptがあります

var qu;
var slogan;
function rndqu(n){
    var random = function(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
    };  
    qu = random(1, 7);
    switch(qu){
        case 1:
            slogan = "This text is random generated. Woohooo... :P";
            break;
        case 2:
            slogan = "Mira is creating huge game named Rock Paper.";
            break;
        case 3:
            slogan = "I will add discussion on my site!";
            break;
        case 4:
            slogan = "Everyone loves Koding.";
            return;
        case 5:
            slogan = "Mira is potato. :(";
            return;
        case 6:
            slogan = "I'm learning Javascript, this slogan is made in Javascript!";
            return;
        case 7:
            slogan = "There is actually over 9000 slogans!";
            return;
        default:
            slogan = "Is it possible to get default?";
    }
    document.getElementById("quote").innerHTML = slogan;
}

うまくいくこともあれば、うまくいかないこともあります。Google Chrome を試してみましたが、それはコンソールであり、このコマンドrndqu(); console.log(qu);を使用してデバッグしました。しかし、私は失敗しました。コードにバグは見られません。

いつ:

qu = 1スローガンは正しく機能します。

qu = 2スローガンは正しく機能します。

qu = 3スローガンは正しく機能します。

qu = 4スローガンは変わりません。

qu = 5スローガンは変わりません。

qu = 6スローガンは変わりません。

qu = 7スローガンは変わりません。

なぜそれが機能しないのかは、私にとって完全なミステリーです。

編集:私はブラインドダムです。私は盲目的です!!!

4

3 に答える 3

7

return;機能しない場合は、代わりにandを使用しているbreak;ため、関数を終了し、結果を保存する部分に到達していないためです。

于 2013-03-29T19:05:59.763 に答える
2

ケース番号4以降、ブレークの代わりにリターンがあります。簡単に修正できます:-)

于 2013-03-29T19:07:32.147 に答える
2

ケース4、5、6 、および7return;の代わりにbreak;

于 2013-03-29T19:07:45.520 に答える