JavaScript打印3*5星号矩形图案代码错误修正求助
错误原因
- 内层循环调用
console.log("*")时,该方法默认会在输出内容末尾追加换行符,导致每个星号单独占一行,无法实现同行排列。 - 内层循环结束后额外执行
console.log("\n"),会在每行星号结束后再新增一个空行,进一步打乱输出格式。
修正方案
推荐优先使用字符串拼接后整行输出的写法,逻辑更简洁直观:
// Getting input via STDIN const readline = require("readline"); const inp = readline.createInterface({ input: process.stdin }); const userInput = []; inp.on("line", (data) => { userInput.push(data); }); inp.on("close", () => { //start-here var i,j,a=3,b=5; for(i=1;i<=a;i++) { let line = ''; for(j=1;j<=b;j++) { line += '*'; } console.log(line); } //end-here });
如果需要逐个输出字符不换行,也可以用Node.js内置的无自动换行输出方法实现:
//start-here var i,j,a=3,b=5; for(i=1;i<=a;i++) { for(j=1;j<=b;j++) { process.stdout.write("*"); } console.log(); // 仅输出一次换行切换到下一行 } //end-here
内容的提问来源于stack exchange,提问作者SYED FAROOQ
相关产品推荐
相关产品推荐

