Javascript do-while循环问题

时间:2011-11-03 20:38:41

标签: javascript

我需要帮助在do / while语句循环中循环javascript。

我遇到的问题是我在输入无效产品时不想在表格中显示不正确的信息,但它确实显示在document.write中。我需要帮助以确保不会显示不正确的信息。

此外,当我点击“确定”以向我的订单添加更多内容时,它不会循环它,而只是显示document.write。如果你点击“确定”按钮,我希望它循环。

感谢您的帮助。

以下是代码:

 <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>

3 个答案:

答案 0 :(得分:0)

对于问题的第二部分,您必须在循环中使用以下语句

 a = confirm("Do you want to place another order?");

答案 1 :(得分:0)

看起来您没有调整输出结果的部分是否选择了有效的产品。您需要以下内容;

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)

答案 2 :(得分:0)

如果用户点击cancel,您将重新循环循环。将while(a==false)更改为while(a==true)或简单地while(a)

也放行

a = confirm("Do you want to place another order?");

作为>循环中的最后一行,而不是之后的行。

您可以设置一个标志var,让您知道是否找到该项目,并在循环结束时进行检查,以避免显示不存在项目的数据:

<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>