我有一个看似基本的问题,但我似乎无法弄明白。
编写一个程序,该程序获取一个名为“input”的变量的值(在程序顶部声明为任意整数)并输出一个由星号()组成的正方形,与数字(输入)一样大。例如,如果使用值5声明“input”,则程序将显示由25个星号()组成的正方形 - 即; 5个星号()高,5个星号()长。
我到目前为止提出的代码如下。我真的不明白如何连续打印字符串。如果我做了star = i然后它变成数字并打印数字。那我怎么做才能让他们联系起来呢?我也无法弄清楚我应该把新线放在哪里。 console.log(星号“\ n”);给了我一个错误。请帮助:)
var input = 2;
var star = "*";
var i = 0;
do {
console.log(star);
i++;
} while (i < input);
答案 0 :(得分:1)
您可以使用String.repeat()
(仅限ES6)和\r\n
添加新行
var input = 5,
star = "*",
str = [],
i = 0;
do {
str.push( Array(input).join(star) ); // use array(length).join
i++;
} while (i < input);
str = str.join("\r\n"); // add breaklines
console.log(str);
&#13;
答案 1 :(得分:1)
console.log
将向控制台输出一行,其中包含您将其作为参数传递的任何内容。您正在尝试打印一行 n 星号 n 次。
您应该采取的第一步是构建星号字符串。您可以使用+
运算符将字符串连接到另一个字符串:
var input = 2;
var star = "*";
var line = "";
for(var i = 0; i < input; i++) {
line = line + star;
}
构建line
之后,您可以n
次打印它:
for(var i = 0; i < input; i++) {
console.log(line);
}
答案 2 :(得分:0)
您可以使用repeat
- 函数多次打印字符。
var input = 2;
var star = "*";
var i = 0;
while(i++ < input){
console.log(star.repeat(input));
}
&#13;
这会在*
行中重复input
个字符input
次。
答案 3 :(得分:0)
提示:你可以创建一个空数组,然后创建一个以你想要的星号数结尾的循环,之后你将把所有数组成员连接在一起。 (在这里编写代码对你来说没什么用,因为你提到它是一个功课)。
答案 4 :(得分:0)
你可以通过两种方式解决这个问题。如果我们调用你的输入值n,那么我们可以记录n个字符串,每个字符串由n个星组成,或者我们可以记录一个包含(n * n)个星号的字符串,每个星号后都有换行符。
以下是可以执行此任务的函数示例。
function stars (input) {
var output = ''
for (var i = 0; i < input; i++) {
for (var j = 0; j < input; j++) {
output += '*'
}
output += '\n'
}
return output
}