Javascript do-while循环问题
Javascript do-while looping problems
我需要帮助在do/while语句循环中循环javascript。
我遇到的问题是,当输入无效产品时,我不想在表中显示不正确的信息,但它确实显示在document.write中。我需要帮助,以确保不正确的信息不会被显示。
同样,当我点击"ok"添加更多订单时,它不会循环它,而只是显示document.write。我想让它在你点击"ok"按钮时循环。
谢谢你的帮助。
代码如下:
<html>
<head><title>Javascript Assignment 3: Daniel Weiner</title>
</head>
<body bgcolor="brown">
<h1 align="center">Big Ben's Burgers-eCommerce</h1>
<table border="1" width="100%" height="450px" bgcolor="gray"><tr>
<th align="center">Product/Service</th>
<th align="center">Price</th>
<th align="center">Discount</th>
</tr>
<tr bgcolor="orange">
<td align="center"><font size="3">Hamburger
<br>
<br>
<a href="http://www.mcdonalds.com/us/en/food/product_nutrition.sandwiches.256.Hamburger.html" target="_blank">Classic Hamburger</a>
<td align="right" bgcolor="orange"><font size="3">$8.00</font></td>
<td align="center" bgcolor="orange"><font size="3">.10</font></td>
</tr>
<tr bgcolor="orange">
<td align="center"><font size="3">Cheeseburger
<br>
<br>
<a href="http://www.mcdonalds.com/us/en/food/product_nutrition.sandwiches.284.cheeseburger.html" target="_blank">Classic Cheeseburger </a>
</font></td>
<td align="right" bgcolor="orange"><font size="3">$9.00</font></td>
<td align="center" bgcolor="orange"><font size="3">.05</font></td>
</tr>
<tr bgcolor="orange">
<td align="center"><font size="3">Soda
<br>
<br>
<a href="http://www.mcdonalds.com/us/en/food/full_menu/beverages.html" target="_blank">Fabulous Drinks</a>
</font></td>
<td align="right" bgcolor="orange"><font size="3">$2.00
</font></td>
<td align="center" bgcolor="orange"><font size="3"> .07</font></td>
</tr>
<tr bgcolor="red">
<td align="center"><font size="3"> French Fries
<br>
<br>
<a href="http://www.mcdonalds.com/us/en/food/product_nutrition.snackssides.120.small-french-fries.html" target="_blank"> Fries</a>
</font></td>
<td align="right" bgcolor="red"><font size="3"> $4.00</font></td>
<td align="center" bgcolor="red"><font size="3">.15</font></td>
</table>
<script type="text/javascript">
/*Daniel Weiner, Fengpeng Yuan, Javascript 2, Nov 4,2011*/
var username;
var bprice= 8;
var chprice= 9;
var sprice= 2;
var fprice= 4;
var price= 0;
var a;
var b;
var product= "hamburger, cheeseburger, soda, fries";
var quantity =0;
var total;
var cost = 0;
var discount= 0;
do{
username =prompt("Welcome to Big Ben's Burgers. Please enter your name.", "");
alert("Hello " + username+". Please look through our available products and services before placing your order.","");
product=prompt("What do you want?","");
quantity =1*prompt("How many of " +product+ " would you like?");
if (product == "hamburger")
{
price = bprice;
discount = .1;
}
else if (product == "cheeseburger")
{
price = chprice;
discount = .05;
}
else if (product == "soda")
{
price = sprice;
discount = .07;
}
else if (product == "fries")
{
price = fprice;
discount = .15;
}
else{
alert("Sorry, " +username+ " Your item not found.");
}
cost=price*quantity
discount=price*discount*quantity
total=cost-discount
document.write("The cost of buying " +quantity+ " of " +product+ " is $" +cost+ ".<br/>");
document.write("This discount for this purchase is $" +discount+ ".<br/>");
}while(a==false)
a = confirm("Do you want to place another order?");
(b==false)
document.write("Thank you for placing an order with us, " +username+ ".<br/>");
document.write("The total order cost is $" +total+ ".");
</script>
</body>
</html>
对于问题的第二部分,你必须使用下面的循环语句
a = confirm("Do you want to place another order?");
如果用户点击cancel
,则重新迭代循环。将while(a==false)
更改为while(a==true)
或直接更改为while(a)
还要加上
一行a = confirm("Do you want to place another order?");
作为循环中的最后一行,而不是后面的行。
你可以设置一个标志变量,让你知道项目是否被找到,并在循环结束时检查它,以避免显示不存在的项目的数据:
<script type="text/javascript">
/*Daniel Weiner, Fengpeng Yuan, Javascript 2, Nov 4,2011*/
var username;
var bprice= 8;
var chprice= 9;
var sprice= 2;
var fprice= 4;
var price= 0;
var a;
var b;
var product= "hamburger, cheeseburger, soda, fries";
var quantity =0;
var total;
var cost = 0;
var discount= 0;
var flag;
do{
flag = true; //assume found unless otherwise
username =prompt("Welcome to Big Ben's Burgers. Please enter your name.", "");
alert("Hello " + username+". Please look through our available products and services before placing your order.","");
product=prompt("What do you want?","");
quantity =1*prompt("How many of " +product+ " would you like?");
if (product == "hamburger")
{
price = bprice;
discount = .1;
}
else if (product == "cheeseburger")
{
price = chprice;
discount = .05;
}
else if (product == "soda")
{
price = sprice;
discount = .07;
}
else if (product == "fries")
{
price = fprice;
discount = .15;
}
else{
alert("Sorry, " +username+ " Your item not found.");
flag = false;
}
if(flag){
cost=price*quantity
discount=price*discount*quantity
total=cost-discount
document.write("The cost of buying " +quantity+ " of " +product+ " is $" +cost+ ".<br/>");
document.write("This discount for this purchase is $" +discount+ ".<br/>");
}
a = confirm("Do you want to place another order?");
}while(a);
alert('goodbye');
</script>
看起来您没有根据是否选择了有效产品来调节输出结果的部分。您需要像下面这样的内容;
do{
....
productValid = false;
if (product == "hamburger")
{
price = bprice;
discount = .1;
productValid = true;
}
else if (product == "cheeseburger")
{
price = chprice;
discount = .05;
productValid = true;
}
else if (product == "soda")
{
price = sprice;
discount = .07;
productValid = true;
}
else if (product == "fries")
{
price = fprice;
discount = .15;
productValid = true;
}
else{
alert("Sorry, " +username+ " Your item not found.");
}
if(productValid){
cost=price*quantity
discount=price*discount*quantity
total=cost-discount
document.write("The cost of buying " +quantity+ " of " +product+ " is $" +cost+ ".<br/>");
document.write("This discount for this purchase is $" +discount+ ".<br/>");
}
else
{
document.write("No valid product selected<br>");
}
a = confirm("Do you want to place another order?");
}while(a==true)
相关文章:
- setInterval游戏循环的范围问题
- 在循环中附加事件处理程序时出现浏览器性能问题
- 动画、计时和运行循环等问题
- jQuery通过步骤的自排队循环来解决延迟问题
- '对于'循环,替换span标记的问题
- 循环的JavaScript排序问题
- HTML5音频循环出现问题
- 在qualtrics上使用javascript:循环块中的问题id
- 用于异步函数中的循环和定时问题
- Jquery图像循环问题
- I'我在react.js中编写for循环时遇到问题
- JavaScript + mocha:可能是在 for 循环中声明函数的闭包问题
- 循环映像 IE7 问题
- 循环的 JavaScript 性能问题
- 无限循环串联问题
- 循环 += 十进制变量的 javascript 有问题
- JavaScript的循环问题,将值插入数组将不起作用
- …的奇怪问题..循环中
- Ajax / Javascript问题.循环以前的请求
- 问题循环简单的javascript幻灯片与链接