You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript for循环问题求助:按订单次数重复打印提示

修正Tacos点餐程序的循环问题

你的for循环写法存在逻辑错误,导致无法根据订购数量重复打印提示:当前循环初始值设为prompt,条件又是i <= prompt,这意味着循环只会执行一次——第一次迭代时i等于prompt,执行后i自增就会大于prompt,循环直接终止。

关键修正点

  1. 转换数据类型:window.prompt返回的是字符串,需转为数字才能正确用于循环次数控制。
  2. 调整循环结构:让循环从0开始,到小于订购数量的次数结束,确保执行对应次数。
  3. 避免覆盖原生方法:不要用confirm、prompt作为全局变量名,防止覆盖浏览器原生API。
  4. 增加输入校验:处理用户输入非数字、超出范围的异常情况。

修正后的完整代码

// 自定义变量名,避免覆盖原生API
const wantsToOrder = window.confirm("Hey there! Would you like to order some tacos?");
const tacoCountStr = window.prompt("How many tacos would you like to order? (Maximum amount is 99 tacos)");
// 转为数字,默认值设为0处理非数字输入
const tacoCount = parseInt(tacoCountStr) || 0;

console.log(wantsToOrder);
console.log(tacoCount);

function place_order() {
    // 校验输入合法性
    if (tacoCount <= 0 || tacoCount > 99) {
        console.log("请输入1-99之间的有效数量!");
        return;
    }

    console.log(`Your order will contain: ${tacoCount} tacos!!!`);
    console.log(`Your total is: ${tacoCount * 5} USD.`);
    
    // 循环对应次数打印制作提示
    for (let i = 0; i < tacoCount; i++) {
        // 若需显示当前制作第几份,可改为:`Your ${i+1} taco is being prepared 🌮`
        console.log(`Your ${tacoCount} tacos are being prepared 🌮`);
    }
}

place_order();

可选优化

如果想让每次提示更精准(显示当前制作第几份),只需修改循环内的打印语句:

console.log(`Your ${i+1} taco is being prepared 🌮`);

这样订购3份时,会依次打印"Your 1 taco is being prepared 🌮"、"Your 2 taco is being prepared 🌮"、"Your 3 taco is being prepared 🌮"。

内容的提问来源于stack exchange,提问作者Manuel Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:50:59