0
for (var j=0; j<2; j++){
listno=prompt("Enter Item Code","0");
listno = parseInt(listno);

if (listno > 0) {
    PRODUCT_WANT.push(PRODUCT_LIST[listno]);
    WANT_PRICE.push(PRICE_LIST[listno]);
}

else {
alert('Invalid Product Code');
}
if (quantno > 0) {
    quantno=prompt("Enter Quantity","0");
    quantno = parseInt(quantno);
    quantity.push(quantno);
}

else {
alert('Invalid Quantity');
}
}    

ループは機能しますが、ループ カウントを設定する必要はありません。たとえば、999 に設定してから、プロンプトでキャンセルを押してループを終了できるようにしたいです。

4

2 に答える 2

3

promptキャンセルが押された場合は null になります。

あなたは次のようなことをするかもしれません:

while(listno = prompt("Enter Item Code", "0")) {
   ...
}

編集します。の結果はprompt、入力プロンプトに書かれたもの、またはnullキャンセルが押された場合になります。willは条件で使用されるnullと評価されるため、 while ループで使用して、プロンプトが true と評価される間、コードを実行できます。つまり、有効な数値が入力されている限り、プロンプトを表示し続けます。false

デモ

于 2013-04-15T10:44:23.480 に答える
0

あなたが望むのはwhileループです:)

Davidsの回答の詳細として:whileループが行っていることは、条件が満たされるまで、whileループの「本体」が実行されることです。そのため、最初に、true または false のいずれかに評価できる条件が必要です。条件が真の場合、while ループの「本体」が実行され、「本体」で条件を変更できます。例を挙げる

var i = 0;
while(i < 20)
{
    i = i+1;
}

上記は i が 20 より小さい限り実行されます。

于 2013-04-15T10:44:33.370 に答える