刚开始我的单身课程,用javascript挣扎了一下。我被要求使用任何字符显示正方形,但是,解决方案必须结合for循环和if语句。
到目前为止,这是我所拥有的,我感觉非常接近,但我无法显示第二行。我知道这可以通过两个for循环来完成(一个用于迭代变量而另一个用于空格)。但这不是我被要求解决这个问题的方法。
这是我的代码:
var size = 3;
let i;
for(i = 0; i < size; i++) {
print ("*");
if (size === i){
println ("");
}
}
对于背景,这一切都发生在教授自制的学习环境中。
答案 0 :(得分:2)
您可以使用嵌套的for
循环,并在每条填充行后执行换行符。
function print(s) { document.getElementById('out').innerHTML += s; }
function println(s) { document.getElementById('out').innerHTML += s + '\n'; }
var size = 5,
i, j;
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) {
print("*");
}
println("");
}
&#13;
<pre id="out"></pre>
&#13;
单一循环,检查i
是否不等于零,如果余数为零,则添加换行符。
使用:
===
identity/strict equality运算符检查类型和值,例如,如果两者都是数字且值是相同的,
!==
non-identity/strict inequality运算符就像上面一样,但它会检查它的对话,
%
remainder运算符,它返回一个除数返回整数的数字的其余部分。
&&
logical AND运算符,检查双方并返回最后一个值truthy(如任何数组,对象,数字不为零,非空字符串,{{1} }),或第一个,如果它是falsy(例如true
,undefined
,null
,0
(空字符串),''
,真正的白痴)。
false
&#13;
function print(s) { document.getElementById('out').innerHTML += s; }
function println(s) { document.getElementById('out').innerHTML += s + '\n'; }
var size = 5,
i;
for (i = 0; i < size * size; i++) {
if (i !== 0 && i % size === 0) {
println("");
}
print("*");
}
&#13;
答案 1 :(得分:0)
for循环只迭代3次,打印第一行。如果你想要一个正方形,你将不得不打印9颗星,对吧?所以我假设,这是你要采用的方法,你需要迭代直到size
,但直到size * size
。
答案 2 :(得分:0)
你想要制作一个*的正方形,其大小是其两侧的*的数量?
让我们将一项任务分成三部分:
现在让我们编写代码,我保持代码尽可能简单,这可以用更少的行完成,但我认为这对初学者来说更容易理解:
var size = 5;
var i = 0;
// top
for (i = 0; i < size; i++)
console.log("*");
//middle
for (var j = 0; j < size - 2; j++){
console.log("\n"); // go to next row
// middle (2 on sides with size-2 in between)
console.log("*");
for (i = 0; i < size-2; i++)
console.log(" ");
console.log("*\n"); // goes to new row as well
}
// same as top
for (i = 0; i < size; i++)
console.log("*");
全方位甚至更简单:
var size = 5;
var i = 0;
for (var i = 0; i < size; i++){ // iterates rows
for (var j = 0; j < size; j++) // iterates * in row
console.log("*");
console.log("\n") // moves to new row
}
要打印行,请将相同的符号打印X次。好吧,要打印X行,我们可以再使用1次(只有这次我们迭代一个不同的变量(j是*连续,我是一些行)。
在排了一行后,我们用\ n。
进入下一行至于
它必须包含if语句
把它放在最后:
if (youCanHandleTheTruth) console.log("It's a terrible practice to tell students their solution MUST CONTAIN CODEWORDS. If you need them to showcase something, write appropriate task that will require them to do so.");
答案 3 :(得分:0)
我使用console.log来打印&#39;广场:
var dimension = 10;
var edge = '*';
var inside = ' ';
var printLine;
for (var i = 1; i <= dimension; i++) {
if (i === 1 || i === dimension) {
printline = Array(dimension + 1).join(edge);
} else {
printline = edge + Array(dimension - 1).join(inside) + edge;
}
console.log(printline);
}
请注意,在下面的示例中,长度为11的数组只能获得10&#34; a&#34; s,因为Array.join将参数放在数组元素之间:
Array(11).join('a'); // create string with 10 as "aaaaaaaaaa"