0

ループは、各本の価格を取得して合計に追加し、ユーザーが「N」を入力するまで各本のページに平均を表示することになっています。

<script type="text/javascript">
var ct = 1;
var yesORno = "Y";
while (yesORno = "Y"){
    book = prompt("What is the price of book #" + ct, 0);
    total = parseInt(book) + total;
    ans = total / ct;
    document.write("<p>With book #" + ct +" The average is " + ans + "</p>");
    ct = ct + 1;
    yesORno = prompt("Would you like to continue? (Y/N)", "")
}
</script>
4

3 に答える 3

8

while 条件を次のように変更する必要があります。

while (yesORno == "Y")

only=を使用すると、「Y」値が yesORno に割り当てられ、それ自体が返されます。これは true として評価され、永久に実行されます。

于 2013-10-28T01:20:31.473 に答える
3
var ct = 1;
var yesORno = "Y";
while (yesORno == "Y"){
    book = prompt("What is the price of book #" + ct, 0);
    total = parseInt(book) + total;
    ans = total / ct;
    document.write("<p>With book #" + ct +" The average is " + ans + "</p>");
    ct = ct + 1;
    yesORno = prompt("Would you like to continue? (Y/N)", "")
}

3 行目を見てください。

于 2013-10-28T01:20:41.630 に答える
3

他の人が述べたように、等価演算子または厳密等価演算子=の代わりに代入演算子を使用しました。=====

ただし、代わりに do while ループを使用してコードをリファクタリングすることもできます。yesORnoこれにより、変数を持つ必要がなくなります。

do {
    //...
} while(prompt("Would you like to continue? (Y/N)", "") === 'Y')
于 2013-10-28T01:28:38.683 に答える