在for循环中打印字符

时间:2015-11-28 03:55:21

标签: javascript

我有一个循环

for (var i=0; i < x; i++){
  // ..
}

我想在两个字符之间包装每个8个数字。所以我的输出看起来像这样:

< 0 1 2 3 4 5 6 7 > < 8 9 10 11 12 13 14 15 > < 16 17 18 19 20 21 22 23 > < ...

我的解决方案是

if(i == 0) console.info('<');
if(i == 7) console.info('>');
if(i == 8) console.info('<');
if(i == 15) ...

但这会非常冗长。是否有可能使这项任务更容易?

5 个答案:

答案 0 :(得分:2)

您可以使用i(mod)运算符检查%是否介于7和8之间。如果将x % y除以x,则y会返回余数。例如:

0 % 4 == 0

1 % 4 == 1

2 % 4 == 2

3 % 4 == 3

4 % 4 == 0

5 % 4 == 1

使用此方法的解决方案如下所示:

var limit = 64;
console.info('< ');
for (var i = 0; i < limit; i++) {
  if (i % 8 == 0 && i > 0) {
     console.info('> <');
  }
  console.info(i, ' ');
}
console.info('>');

答案 1 :(得分:0)

console.info('<');
for (var i=0; i < x; i++){
    if ((i > 0) && (i %8) == 0) {
        console.info('><');
    }
}
console.info('>');

基本上,我们在这里做的是说,如果我除以8的余数为0,则添加括号。因此,每8个数字。

希望这有帮助!

答案 2 :(得分:0)

不确定

image.height()

答案 3 :(得分:0)

试试这个:

(function() {
  var result = "";
  var x = 25;
  for (var i = 0; i < x; i++) {
    if (i % 8 == 0) {
      result += "> <"
    }
    result += " " + i + " ";
  }
  result += " >"
  console.log(result.substring(1));
})()

答案 4 :(得分:0)

我的建议,

var limit = x/8;
var chunk;
for (var i=0; i<limit; i++) {
    console.log('<');
    chunk = i*8;
    for (var j=chunk; j<chunk+8; j++)
        console.log(j);
    console.log('>');
}