今天上课的时候主讲老师在讲在控制台输出打印菱形,以7行为例讲了一个例子。但是我寻思,这指定的行数会变的呀,要是变了还得一行一行读代码,然后去改,很麻烦。于是 自己琢磨了一个
function drawDiamond02(totalHang) { // totalHang为奇数
// 打印上部分的等腰三角形
let i = 0 // 行号 从0开始
while (i < parseInt(totalHang / 2) + 1) { // 上半部分一直到中间行 行号为 parseInt(totalHang / 2) + 1
let str = ""
let j = 0
// 拼接空格
while (j <= parseInt(totalHang / 2) - i - 1) { // 找到空格数规律 parseInt(totalHang / 2) - i - 1
str += " "
j++
}
// 拼接*
let k = 0
while (k < 2 * i + 1) { // 找到*数规律 2 * i + 1
str += "*"
k++
}
console.log(str);
i++
}
let x = 1 // 创建一个辅助数据 x = 1
while (i < totalHang) {
let str = ""
// 拼接空格
let k = 0
while (k < i - parseInt(totalHang / 2)) { // 找到下部分空格数规律 i - parseInt(totalHang / 2)
str += " "
k++
}
let j = 0
// 拼接*
while (j <= parseInt(totalHang / 2) - 1 + totalHang - i - x) {
// 找到下部分*数规律 parseInt(totalHang / 2) - 1 + totalHang - i - x
str += "*"
j++
}
x++
console.log(str); // 拼接结果
i++
}
}
drawDiamond02(13)
这样 就能轻松的输出指定行数的菱形在控制台上。 初入前端,希望大家能一起讨论~~