循环语句问题:如何在字符串两侧交替添加*符号
问题分析与修正代码
你的代码存在几个关键问题:
- 函数参数
str和n被重新赋值覆盖,完全忽略了传入的参数,逻辑本末倒置 - 把
n赋值为字符串"*",后续n++会得到NaN,循环条件n<=5根本不成立 - 没有实现**交替在字符串两侧添加
***的逻辑,只是单纯往字符串末尾追加
下面是修正后的代码,用do..while循环实现交替添加的需求:
function padIt(str, n) { let count = 1; // 记录当前是第几次添加 do { if (count % 2 === 1) { str = "*" + str; // 奇数次在左侧添加 } else { str += "*"; // 偶数次在右侧添加 } count++; } while (count <= n); return str; } // 测试示例:调用padIt("a",5)会返回"***a**" console.log(padIt("a", 5));
逻辑说明
- 用
count变量追踪当前是第几次添加操作,从1开始计数 - 奇数次循环时往字符串左侧加
*,偶数次往右侧加*,实现交替效果 - 循环执行
n次,直到count超过n终止
内容的提问来源于stack exchange,提问作者Qwop
相关产品推荐
相关产品推荐

