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

JS实现99瓶啤酒歌词打印函数,console.log生效但return失效如何解决

问题产生原因

  • JavaScript 函数执行时遇到return语句会直接终止运行,若直接将循环内的console.log替换为return,第一次循环就会触发返回,后续98次循环不会执行,只能拿到第一行歌词。
  • console.log支持多次调用逐行输出内容,但一个函数仅能通过return返回一个值,无法通过循环内多次return输出全部歌词。

解决方法

提前声明存储变量收集所有歌词,全部拼接完成后统一返回即可,修改后的参考代码如下:

function beer() {
  // 用数组存储每一行歌词
  const lyricsArr = [];
  let n = 99;
  while (n > 1) {
    const m = n - 1;
    const line = `${n} bottles of beer on the wall, ${n} bottles of beer. Take one down and pass it around, ${m} bottles of beer on the wall.`;
    lyricsArr.push(line);
    n--;
  }
  lyricsArr.push("No more bottles of beer on the wall, no more bottles of beer. Go to the store and buy some more, 99 bottles of beer on the wall.");
  // 统一返回,join('\n')是把所有行用换行符拼接成完整字符串,也可以直接返回数组按需处理
  return lyricsArr.join('\n');
}

调用时直接用console.log(beer())即可看到和原写法一致的完整歌词输出。

内容的提问来源于stack exchange,提问作者Shruti Rai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:18:05