変数vTotalPayment
は機能しません。これは、私が何を間違えているのか分からないにもかかわらず、私がどのように機能を呼び出すかによると考えています。私はこれもswitch文の悪用の可能性があることを認識しています。機能が実行されていないか正しく呼び出されていません
function begin() {
var vTicketType = prompt('Please enter the type of ticket');
var vTicketQty = Number(prompt('Please enter amount required'));
document.write('Ticket Type: ' + vTicketType + '<br />');
document.write('Ticket Qty: ' + vTicketQty + '<br />');
var vTicketPrice = calcPrice(vTicketType);
var vTotalPayment = calcTotal(vTicketQty, vTicketPrice);
document.write('Total Payment: ' + vTotalPayment);
}
begin();
function calcPrice(Prices) {
var Price = 0;
switch (vTicketType) {
case 'A':
Price = 100;
break;
case 'B':
Price = 75;
break;
case 'C':
Price = 50;
break;
default:
Price = -1;
}
return (Price);
}
function calcTotal(Payments) {
var Payment = (vTicketQty * vTicketPrice);
return (Payment);
}
を返すとき、あなたは()括弧は必要ありません。それは間違っているかもしれません。 vTicketQtyとvTicketPriceの両方をパラメータとして使用する必要があります。それを試してください。このように....関数calcTotal(vTicketQty、vTicketPrice){ var Payment =(vTicketQty * vTicketPrice); 返品(お支払い); } –
そのため、あなたは、関数calcPriceのよう を使用している変数を宣言していなかった:あなたはvTicketType'文の代わりに、価格 、あなたは未定義の変数を使用しているにも機能的に 'calcTotal'を切り替えるために、'渡しています。 – psycho
スイッチの代わりにこれを試すことができます。 [JSFiddle](https://jsfiddle.net/gzfyzy4h/)。これは最適化に注意してください。以下の答えは問題の実際の理由を指摘している – Rajesh